Python 打开文件,写入并打印结果
我又一次成为了《艰难之路》系列和《学习Python》系列的学习者之一 在练习17中,我遇到了:Python 打开文件,写入并打印结果,python,Python,我又一次成为了《艰难之路》系列和《学习Python》系列的学习者之一 在练习17中,我遇到了: out_file = open(to_file, 'w') out_file.write(indata) 因此,按照一些说明,我将其转换为: with open(to_file, 'w') as out_file: out_file.write(indata) 不知道这是否是做这件事的最佳方式,但在读取文件时,它被指示使用。所以,我真正的问题是如何将我写的东西打印出来。 我试着简单地使用以下方
out_file = open(to_file, 'w')
out_file.write(indata)
因此,按照一些说明,我将其转换为:
with open(to_file, 'w') as out_file:
out_file.write(indata)
不知道这是否是做这件事的最佳方式,但在读取文件时,它被指示使用。所以,我真正的问题是如何将我写的东西打印出来。
我试着简单地使用以下方法:
with open(to_file, 'rw+') as out_file:
out_file.write(indata)
print out_file.read()
还有其他几种方法,但我无法让它打印任何东西。只是想知道是否有可能这样做,或者我必须再次单独打开文件打印出来
这里还包括另一个关于我如何使用print withwith
with open(to_file, 'r') as out_file:
print out_file.read()
提前感谢只需打印您正在写入文件的内容(我假设它是一个字符串): 关于第二个问题,您可以分别阅读和打印行:
with open(to_file, 'r') as out_file:
for l in out_file.readlines()
print l
以下代码段的问题:
with open(to_file, 'r+') as out_file:
out_file.write(indata)
print out_file.read()
文件的索引将位于末尾,因此将没有任何内容可读取。要解决这个问题,只需使用seek()
:
尽管如此,在同一块代码中写入和读取在现实生活中没有什么意义,因为您仍然应该拥有已写入的数据,而且由于磁盘I/O比用于保存数据的RAM要昂贵得多,因此您可以只执行以下操作:
with open(to_file, 'w') as out_file:
out_file.write(indata)
with open(to_file, 'r') as in_file:
for line in in_file.readline():
print(line)
写入文件后,您必须将其倒带到开头,以便读取刚刚写入的内容:
In [152]: with open('test.file', 'w+') as out_file:
out_file.write(data)
out_file.seek(0)
print out_file.read()
.....:
test string
你为什么不打印数据呢?最后一段代码的具体问题是什么?使用
r+
。在写入数据之后,您可能已经到了文件的末尾。所以这里没有什么可读的:您需要将文件指针移回文件的开头,然后从那里开始读取。这一点很好,Joel,没有想到。我只是想,如果我用现有字符串向文件中添加字符串,这个信息会很有用。我可能想得太多了。
with open(to_file, 'w') as out_file:
out_file.write(indata)
with open(to_file, 'r') as in_file:
for line in in_file.readline():
print(line)
In [152]: with open('test.file', 'w+') as out_file:
out_file.write(data)
out_file.seek(0)
print out_file.read()
.....:
test string