Python没有';无法读取整个txt文件
我正在学习python基础知识,并做了一个练习,需要逐行读取txt文件和打印文件内容。这是我的密码:Python没有';无法读取整个txt文件,python,python-3.x,Python,Python 3.x,我正在学习python基础知识,并做了一个练习,需要逐行读取txt文件和打印文件内容。这是我的密码: t = open('mbox-short.txt') for line in t: print(line) 以下是文件: 问题是,当我运行脚本时,输出并没有显示文件的几行。上述原始文件中的第一行是: From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 每次我运行脚本时,它都会显示从行开始的内容: Received: fr
t = open('mbox-short.txt')
for line in t:
print(line)
以下是文件:
问题是,当我运行脚本时,输出并没有显示文件的几行。上述原始文件中的第一行是:
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])
我还想提到的是,我曾尝试读取从web robots.txt文件随机下载的内容,并且脚本在不跳过任何行的情况下读取所有内容。
我使用的是Windows 8.1 64位和最新的Python 3.6.5。
谢谢。我这样做没有任何问题:
>>> with open('./mbox-short.txt', 'r') as f:
txt = f.read()
>>> print(txt.splitlines()[0]) # display the first line
'From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008'
因此,我建议您稍微修改一下代码,首先读取文本文件,然后使用拆分行来迭代行。也许像这样只打印行
with open("./mbox-short.txt", "r") as ins:
for line in ins:
print(line)
如果只想查找第一个单词,可以使用[0]打开并尝试使用正向索引查找第一行;如果要查找第一行,可以使用splitlines()查找第一行 输出:
>>> print f.split()[0]
From
>>>>
>>> print f.splitlines()[0]
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
>>>
>>> f = open('mbox-short.txt', 'r').readline()
>>> print f
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
>>>
现在我们将找到第一行
f = open('file.txt', 'r').read()
print f.splitlines()[0] # First Line Using Positive Indexing
输出:
>>> print f.split()[0]
From
>>>>
>>> print f.splitlines()[0]
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
>>>
>>> f = open('mbox-short.txt', 'r').readline()
>>> print f
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
>>>
或者也可以使用readline()执行此操作:
输出:
>>> print f.split()[0]
From
>>>>
>>> print f.splitlines()[0]
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
>>>
>>> f = open('mbox-short.txt', 'r').readline()
>>> print f
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
>>>
谢谢 @halfelf在评论中发布了正确答案,所以我将其复制到这里:
我猜只是你的cmd/powershell的缓冲区不能包含1910 该文件的行,并且开始行已滚动
我刚刚增加了cmd属性中的缓冲区大小,现在它显示了所有行。谢谢大家的回答,我很感激。要想得到所有的台词,你必须这样做:
t = open('mbox-short.txt', 'r').readlines()
for n in t:
line = n.strip()
print line
我下载了指定的文件并运行了您的代码。“它在我的机器上工作。”我想这只是因为你的cmd/powershell的缓冲区不能包含该文件的1910行,并且开始行已被滚动。@quemrana,他想获取该文件的第一行text@halfelf你是对的。我增加了缓冲区大小(5000),现在它终于显示了所有行。谢谢大家!@SkillerDz OP发布的代码说他想要文件中的所有行。这是我在“我的机器”上运行它时观察到的。手柄是quamrana,全是a。