Python:文本文件中的字符数
我想要计算一个文件里的字符数量。可是当我对一个导入的文本文件使用'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)