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

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) 不知道这是否是做这件事的最佳方式,但在读取文件时,它被指示使用。所以,我真正的问题是如何将我写的东西打印出来。 我试着简单地使用以下方

我又一次成为了《艰难之路》系列和《学习Python》系列的学习者之一 在练习17中,我遇到了:

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 with
with

 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