我再次成为研究学习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的内容。 我试过简单地使用以下内容:
with open(to_file, 'rw+') as out_file:
out_file.write(indata)
print out_file.read()
和其他几种方式,但我无法打印任何东西。只是想知道是否甚至可以这样做,或者我必须再次单独打开文件将其打印出来。
此处还有一个关于如何使用with
with open(to_file, 'r') as out_file:
print out_file.read()
提前致谢
答案 0 :(得分:0)
只需打印您正在写入文件的内容(我假设它是一个字符串):
with open(to_file, 'rw+') as out_file:
out_file.write(indata)
print indata
关于第二个问题,您可以单独阅读和打印行:
with open(to_file, 'r') as out_file:
for l in out_file.readlines()
print l
答案 1 :(得分:0)
以下代码段的问题:
with open(to_file, 'r+') as out_file:
out_file.write(indata)
print out_file.read()
是文件的索引将在最后,因此没有什么可读的。要解决这个问题,只需使用seek()
:
with open(to_file, 'r+') as out_file:
out_file.write(indata)
out_file.seek(0)
for line in out_file.readline():
print line
尽管在相同的代码块中编写和读取在现实生活中没什么意义,因为你仍然应该有你编写的数据,并且因为磁盘的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)
答案 2 :(得分:0)
在您撰写文件后,您必须将其回放到开头才能阅读您刚刚撰写的内容:
In [152]: with open('test.file', 'w+') as out_file:
out_file.write(data)
out_file.seek(0)
print out_file.read()
.....:
test string