len函数在文件上是如何工作的?

1 投票
3 回答
1374 浏览
提问于 2025-04-17 10:15

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个字符。

撰写回答