如何计算文件中的字符数(不使用len函数)



基本上,我希望能够计算txt文件中的字符数(通过用户输入文件名)。我可以让它显示文件中有多少行,但不能显示有多少字符。我没有使用len函数,这就是我所拥有的:

def length(n):
    value = 0
    for char in n:
        value += 1
return value
filename = input('Enter the name of the file: ')
f = open(filename)
for data in f:
    data = length(f)
    print(data)

您所需要做的就是将每行中的字符数相加(data):

total = 0
for line in f:
    data = length(line)
    total += data
print(total)

有两个问题。

首先,对于文件中的每一行,都要将f本身(即一系列行)传递给length。这就是为什么它要打印文件中的行数。该行序列的长度就是文件中的行数。

要解决此问题,您需要传递每一行data,也就是一系列字符。因此:

for data in f:
    print length(data)

接下来,虽然这将正确计算每行的长度,但您必须将它们全部相加才能获得整个文件的长度。因此:

total_length = 0
for data in f:
    total_length += length(data)
print(total_length)

然而,还有另一种更简单的方法来解决这个问题。如果read()文件,您将得到一个巨大的字符串,而不是一系列单独的行。所以你只需要调用length一次:

data = f.read()
print(length(data))

这样做的问题是,您必须有足够的内存来同时存储整个文件。有时这是不合适的。但有时确实如此。

当您迭代一个文件(以文本模式打开)时,您正在迭代它的行
CCD_ 7可以重写为CCD_。

您的length函数看起来应该可以工作,但您正在将打开的文件发送给它,而不是每行。

最新更新