2016-11-14 45 views
0

我需要将行发送到名为testPrint.txt的文件的开头和结尾。我需要发送的行存储在testValues.txt。为此,我需要第三个文件将所有这些写入,tempFile.txt将行输入到文件的开头和结尾

  1. 我需要从testValues.txt行写入到tempFile.txt

  2. 将数据从testPrint.txt附加到tempFile.txt

  3. 接下来,将testVaules.txt的行追加到tempFile.txt

  4. 最后,从tempFile.txt复制内容并覆盖testPrint.txt上的数据以在文件的开始和结尾包含我的testValues.txt

这可能吗?如果是这样,怎么样?

+0

是的,它是可能的,你只是回答自己在如何做到这一点...什么是问题? – MooingRawr

回答

0

当然,这是可能的,但我不明白你为什么需要临时文件。只需将数据保存在内存中。

  1. 开放testValues.txt,并在只读模式testPrint.txthandle = open(..., 'r')
  2. content = handle.read()读取数据
  3. 在写模式下关闭与handle.close()
  4. 开放test.Print.txt文件(handle = open(..., 'w')
  5. 写你想要的内容,你想要和关闭。

(而不是明确的close你可能想使用open为contextmanager:

with open('testValues.txt', 'r') as testValuesFile: 
    testValues = testValuesFile.read() 

+0

这是一个好主意,但是这样可以确保一切都写完了吗?在有些数据不总是被写入的时候,我已经接触过了。 –

+0

当你打开('testPrint.txt','w')'时,文件被截断,因此完全是空的,前面的内容将被覆盖。 –

1

我需要写从testValues.txt行到tempFile.txt

open('tempFile.txt', 'w').write(open('testValues.txt').read()) 

数据附加从testPrint.txttempFile.txt

open('tempFile.txt', 'a').write(open('testPrint.txt').read()) 

接着,线从附加到testVaules.txttempFile.txt

open('tempFile.txt', 'a').write(open('testVaules.txt').read()) 

最后,从tempFile.txt将内容复制,并覆盖上testPrint.txt的数据包含我testValues.txt在文件的开头和结尾。

open('testPrint.txt', 'w').write(open('tempFile.txt').read()) 

另一种选择:

tv = open('testVaules.txt').read() 
open('testPrint.txt', 'w').write(tv + open('testPrint.txt').read() + tv) 
+0

'open('...','w')。write(...)'可能无法正确关闭文件。 –

0

要写入文件的末尾:

with open('file.txt', 'a') as outfile: 
     outfile.write(row) 

要写入开头:

data = [] 
    with open('file.txt', 'r') as infile: 
     for row in infile: 
      data.append(row) 
    with open('file.txt', 'w') as outfile: 
     for row in data: 
      outfile.write(row) 
相关问题