【发布时间】:2018-05-08 09:38:06
【问题描述】:
我正在学习 python 基础知识,并在需要阅读 txt 文件并逐行打印文件内容的地方进行练习。这是我的代码:
t = open('mbox-short.txt')
for line in t:
print(line)
这是文件:https://www.py4e.com/code3/mbox-short.txt
问题是当我运行脚本时,输出没有显示文件的前几行。上述原始文件中的第一行是:
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
每次我运行我的脚本时,它都会显示从行开始的内容:
Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GA5LR007211
请帮助我了解我做错了什么以及如何解决它。正如我正确理解的那样,它与 txt 文件编码有关。我尝试下载并复制了几次,通过记事本将编码从 ANSI 更改为 UTF-8,但每次我运行脚本时,它都会打印相同的输出,跳过几行并仅从行开始:
Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
还想提一下,我尝试读取从网络上随机下载的 robots.txt 文件,并且脚本会按应有的方式读取所有内容,而不会跳过任何行。 我正在使用 Windows 8.1 64 位和最新的 Python 3.6.5。 谢谢。
【问题讨论】:
-
我下载了指定的文件并运行了你的代码。 “它可以在我的机器上运行。”
-
我猜只是你的cmd/powershell的缓冲区不能包含那个文件的1910行,而且开头的行已经被滚动了。
-
@quemrana ,他要获取文本的第一行
-
@halfelf 你是对的。我增加了缓冲区大小(达到 5000),现在终于显示了所有行。谢谢!
-
@SkillerDz OP 发布的代码说他想要文件中的 all 行。这就是我在“我的机器上”运行它时观察到的。而句柄是quamrana,都是a的。
标签: python python-3.x