我正在尝试获取文件中的字符数。 但是当我在导入的txt文件上使用'len'时,它会返回位数而不是字符数。
text1=open('text1.txt','r+').read()
print len(text1)
1256664
我该如何解决这个问题?
答案 0 :(得分:4)
如果问题是您的文件是编码的,比如UTF-8,那么您应该在计算字符前对其进行解码:
utf8_text=open('text1.txt','r+').read()
unicode_data = utf8_text.decode('utf8')
print len(unicode_data)
答案 1 :(得分:1)
那不会返回位数!
with open('abc') as f:
print len(f.read())
内容为4
时def\n
的结果。也许你的文本是用UTF-16/32 / ......编写的,它对一个字符使用多个字节?请详细说明你的问题。
答案 2 :(得分:0)
实际上它是bytes
读取的数量。如果您使用的是Linux:ls -lh text1.txt
应该为您提供1227K
。
此数字包括文件中的字符数,但也会计算行结尾。
PS我的回答没有考虑到文件编码。在UTF-8下,字符将不再是单字节的1字节字符,如ASCII格式。