【发布时间】:2020-11-08 06:42:36
【问题描述】:
好的。所以我写了一个程序,从阅读器对象中读取每一行。
with open(r'C:\Users\Jayesh B\Documents\Programming\Python\Practicals\Program5\program5.txt','r') as target:
lines = target.readlines()
newfllines = []
for line in lines:
if line[0].lower() == 'a':
newfllines.append(line)
print(lines)
a = target.read()
print(a)
我的文件不是空的,因为打印行给了我输出
['aaditya\n', 'aaaaaaab\n', 'efsgrbdb\n', 'grr\n', 'gegeb\n', 'ee\n', 'adi \n', 'test123\n', 'sb\n', 'fsbr\n', 'bfs\n', 'brsbwb\n', 'wb\n', 'wbwb\n', 'wbe']
但是第二个打印语句没有给出任何输出。谁能告诉我做错了什么? 请注意..我使用的是python版本:3.8.6
Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] on win32
【问题讨论】:
-
您应该在第二个
read调用之前添加target.seek(0)。这是改变文件对象的位置。因为在第一次readlines调用之后,文件位置将在文件末尾。 -
在
target.readlines()之后,你已经到达文件末尾,所以下一次读取什么都没有。 -
好的,谢谢它的工作,我不得不寻找它
标签: python python-3.x readlines