如何计算多行文件中的字符数?

How can I count the number of characters in a multiline file?

我被要求创建一个函数,该函数 returns 文件中的字符总数(包括换行符),其名称作为参数给出。我的代码似乎适用于单行文件,但它不会计算多行文件中的字符总数。

def file_size(filename):
"""returns a count of the number of characters in the file 
whose name is given as a parameter."""

filename = open(filename)
lines = filename.readlines()
for line in lines:     
    length = len(line[::-1])
    return length
    
filename.close()

Python documentation 状态(强调我的):

To read a file’s contents, call f.read(size), which reads some quantity of data and returns it as a string (in text mode) or bytes object (in binary mode). size is an optional numeric argument. When size is omitted or negative, the entire contents of the file will be read and returned; it’s your problem if the file is twice as large as your machine’s memory.

因此,我们可以执行以下操作:

  • 使用不带 size 参数的 .read() 读取文件内容
  • 在调用 .read() 的结果上使用 len() 计算所述文件中的字符数:
len(filename.read())

话虽这么说,但要解决您眼前的问题,您有一个缩进错误;你 return 在 for 循环的第一次迭代之后。这个:

for line in lines:     
    length = len(line[::-1])
    return length

应该是:

for line in lines:     
    length = len(line[::-1])
return length

这样您只需要 return 处理完所有行即可。