Python:文本文件中的字符数

2 投票
3 回答
11727 浏览
提问于 2025-04-17 10:38

我想要计算一个文件里的字符数量。可是当我对一个导入的文本文件使用'len'函数时,它返回的是比特数,而不是字符数。

text1=open('text1.txt','r+').read()
print len(text1)

1256664

我该怎么解决这个问题呢?

3 个回答

0

其实这是读取的字节数。如果你在Linux系统上,可以用命令ls -lh text1.txt来查看,这个命令会显示文件的大小,比如会显示1227K

这个数字包括了你文件中的字符数量,但换行符也会被计算在内。

另外,我的回答没有考虑文件的编码方式。在UTF-8编码下,字符不再像ASCII那样都是单个1字节的字符。

1

这并不是返回位数的结果!

with open('abc') as f:
    print len(f.read())

当内容是 def\n 时,结果是 4。也许你的文本是用像 UTF-16 或 UTF-32 这样的编码,这种编码一个字符可能会用多个字节?请详细说明一下你的问题。

4

如果你的文件是用某种编码方式保存的,比如UTF-8,那么在计算字符数量之前,你需要先把它解码。

utf8_text=open('text1.txt','r+').read()
unicode_data = utf8_text.decode('utf8')

print len(unicode_data)

撰写回答