无法打印我从文件 python 中读取的内容
cannot print what i read from file python
好的。所以我写了一个程序,从 reader 对象中读取每一行。
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
一旦到达流的末尾,您需要再次 re-read 文件(您不需要关闭文件,因为您正在使用 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.readlines()
之后使用 target.seek(0)
方法来解决此问题,因为它会重置您的指针并将其带到文件中的第一个字符。另外,确保缩进是正确的,所有内容都应该在 with
code-block 中,因为一旦取消缩进 code-block.
文件就会关闭
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\n', 'a']
ciao
come
stai
a
a
a
['a\n', '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)
好的。所以我写了一个程序,从 reader 对象中读取每一行。
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
一旦到达流的末尾,您需要再次 re-read 文件(您不需要关闭文件,因为您正在使用 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.readlines()
之后使用 target.seek(0)
方法来解决此问题,因为它会重置您的指针并将其带到文件中的第一个字符。另外,确保缩进是正确的,所有内容都应该在 with
code-block 中,因为一旦取消缩进 code-block.
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\n', 'a']
ciao
come
stai
a
a
a
['a\n', '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)