无法打印我从文件python中读取的内容

问题描述

好的。所以我写了一个程序,可以从阅读器对象中读取每一行。

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']

,但是第二个print语句不提供任何输出。谁能告诉我我做错了吗? 请注意..我正在使用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

解决方法

到达流的末尾后,您需要再次重新读取文件(在使用with时不需要关闭文件),还可以修复缩进:

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 = open(r'C:\Users\Jayesh B\Documents\Programming\Python\Practicals\Program5\program5.txt','r').read()
print(a)

您也可以使用target.seek(0)

再次回到顶部 ,

当您使用target.readlines()方法时,指针将遍历整个文件并位于末尾,因此,当您调用taeget.read()方法时,由于指针位于指针上而没有任何内容可读取。文件末尾。您可以通过在target.seek(0)之后使用target.readlines()方法来解决此问题,因为它将重置您的指针并将其带到文件中的第一个字符。另外,请确保缩进正确,所有内容都应位于with代码块中,因为一旦您从该代码块中缩进,文件就会关闭。

,
with open(r'program.txt','r') as target:
    lines = target.readlines()
    newfllines = []
    for line in lines:
        if line[0].lower() == 'a':
            newfllines.append(line)
    print(lines)
    target.seek(0)
    a = target.read()
    print(a)
    print(newfllines)

输出

['ciao\n','come\n','stai\n','a\n','a']
ciao
come
stai
a
a
a
['a\n','a']
,

您正在尝试读取已关闭的文件。相反,您可以尝试一下。

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)
with open(r'C:\Users\Jayesh B\Documents\Programming\Python\Practicals\Program5\program5.txt','r') as target:
    a = target.read()
print(a)