如何计算多行文件中的字符数?
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 处理完所有行即可。
我被要求创建一个函数,该函数 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 处理完所有行即可。