file=open('in.txt','r')
print((file.readlines()).pop(20)[:-1])
for line in file:
print(line[:-1])
我有这个程序,当我运行它时,它会显示我的文件的第21行并且它就是它。我不知道它的技术术语,但每当我使用' .read()'或者' readline()'或者' readlines()'然后尝试直接从文件中读取,它永远不会工作,为什么呢?发生了什么事?我没有收到错误代码,它只是没有显示任何内容,因为' for'循环。
答案 0 :(得分:2)
你在这里打开文件:
file=open('in.txt','r') # note r is default, you don't need it explicitly.
当您致电file.readlines
时,您将耗尽文件处理程序:
print((file.readlines()).pop(20)[:-1])
然后当你再次尝试迭代文件时,它就在文件的末尾,什么都不做。
你也忘记了最后关闭你的文件。 我建议您使用上下文管理器来自动关闭文件,并且只浏览一次文件:
with open('in.txt', 'rU') as file:
file_lines = file.readlines()
然后参考列表中的文件行。
请注意,我使用rU
标志,该标志使用通用换行符模式。这将涵盖跨平台,因为OS X,Windows和Linux都有不同的换行符。
而不是这样做:
for line in file:
line[:-1]
您可以通过使用line.rstrip()
处理行来删除换行符,这将删除右侧的空格。
答案 1 :(得分:1)
你需要"重置"文件迭代器:
file.seek(0)
for line in file:
print(line[:-1])