len函数在文件上是如何工作的?
Python文档说:返回一个对象的长度(也就是里面有多少个项目)。这个对象可以是一个序列(比如字符串、元组或列表)或者一个映射(比如字典)。
代码:
from sys import argv
script, from_file = argv
input = open(from_file)
indata = input.read()
print "The input file is %d bytes long" % len(indata)
文件内容:One two three
运行这个简单程序后,我得到的输出是:输入文件的长度是14字节
问题:
我不明白,为什么我的文件里只有11个字符(One two three),但len却返回14字节,而不是简单的11?(顺便问一下,字节是什么?)在Python解释器里,如果我输入 s = "One two three",然后len(s),我得到的是13,所以我很困惑。
3 个回答
1
我用了你的代码,创建了一个和你的文件内容相似的文件。运行结果显示:确实在你的"One two three"文件里有额外的不可打印字符。这是唯一的解释。空格和换行是最明显需要检查的地方。
2
一二三
one = 3个字符
two = 3个字符
three = 5个字符
然后你还有两个空格
。所以总共有13
个字符。
在从文件读取时,文件里多了一个空格
,所以总共是14个字符。
在你的Python解释器里这样做:
st = " "
len(st)
输出 = 1
7
“一二三”确实是13个字符(11个字母加上2个空格)。
>>> open("file.txt", 'w').write("one two three")
>>> len(open("file.txt").read())
13
很可能你多了一个字符是因为换行符,这就解释了为什么是14个字符。