打开文件,写入并打印出结果

时间:2014-05-08 13:14:40

标签: 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的内容。 我试过简单地使用以下内容:

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()

提前致谢

3 个答案:

答案 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