2017-08-31 113 views
-5

我的问题是,我正在尝试编写一个函数来计算某些指定的.txt文件中的字符数。我已经拿出了下面的代码;Python - 计算文件中的字符数

def file_size(filename): 
    with open('data.txt', 'r') as file: 
    filename = file.read() 
    len_chars = sum(len(word) for word in filename) 
    return len_chars 

此功能时,我把它与print(file_size('data.txt'))并给我正确的输出。但是,我想知道如何更改我的代码,以便它可以统计保存在与程序本身相同的目录中的任何.txt文件中的字符数,而不仅仅是当我使用print(file_size('filename'))与之调用时的data.txt。例如,如果有10个.txt文件保存在与我的程序相同的目录中,我希望能够为这些文件运行此程序,而不必在我的函数中输入文件的名称,而是使用当我调用该函数时该文件的名称。预先感谢您的帮助。

+0

请参阅[sys.argv](https://docs.python.org/3/library/sys.html#sys.argv)。 –

+3

只是循环访问'os.listdir(my_folder)'并且使用适当的标题,你的问题更多地是关于如何遍历文件夹而不是实际计算字符(你已经解决了这个问题) – Julien

+0

另请参见[os.path.getsize ](https://docs.python.org/3/library/os.path.html?highlight=os%20path#os.path.getsize),它可以完成你正在写的东西。 –

回答

0

您可以通过文件名作为参数,你会打电话给喜欢

def file_size(filePath): 
    with open(filePath, 'r') as file: 
     filename = file.read() 
     len_chars = sum(len(word) for word in filename) 
     return len_chars 

调用上面的函数的功能

character_count = file_size(fileName) 

或 您可以在执行所有字符时,传递文件名计算python文件如

python fileName.py -file fileName.txt 

在python的sys模块中用sys.argv完成参数传递。 您可以参考http://www.python-course.eu/passing_arguments.php

相关问题