如何继续写入具有相同文件对象的移动文件?

How to keep writing in a moved file with the same file object?

如果我打开一个文件

fileObj = open(test.txt, 'wb+')

然后在里面写点东西

fileObj.write(someBytes)

然后决定将它移到其他地方

shutil.move('test.txt', '/tempFolder')

然后继续往里写

fileObj.write(someMoreBytes)

会发生什么?

一些观察:

  1. /tempFolder/test.txt 的文件似乎只包含写入的第一组字节。
  2. 移动文件后,似乎从文件对象中删除了第一组字节
  3. 文件移动后对文件对象的后续写入似乎不会在 test.txt 处的磁盘上创建新文件,那么这些字节会发生什么?它们留在内存中的文件对象中?

现在我的主要问题是:如何在移动的文件上保留相同的文件对象?因为本质上文件是相同的,所以它只是改变了位置。还是不可能?

感谢您的帮助!

移动文件 shutil.move('test.txt', '/tempFolder') 后,想继续向其中添加字节,您需要创建一个新变量,指示新文件位置.

由于您将文件移动到新位置,fileObj.write(someMoreBytes) 不再写入字节,因为您最初创建的对象已被移动。因此您必须重新打开一个新文件,"continue" 向其中写入字节或如上所述指定新位置,以向现有文件添加字节。

例如:

import os
f=open('existingfile.txt', 'wb+')

f.write('somebytes')
f.close()
os.rename('currentPath\existingfile.txt', 'NewPath\existingfile.txt')

#reopen file - Repeat

fobject 不知道您移动了文件。您可以通过添加

fileObj = open("tempFolder/test.txt", "wb+")

搬家后。