如何使用相同的文件对象在移动的文件中继续写入?

2024-07-04 17:01:13 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我打开一个文件

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

在上面写些东西

fileObj.write(someBytes)

然后决定把它移到别的地方

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

然后继续写下去

fileObj.write(someMoreBytes)

会发生什么?你知道吗

一些观察结果:

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

现在我的主要问题是:如何保持相同的文件对象在移动的文件上写入?因为文件本质上是相同的,所以它只有更改位置。还是不可能?你知道吗

谢谢你的帮助!你知道吗


Tags: 文件对象testtxtmove字节地方open
2条回答

移动文件后shutil.移动('测试.txt“,”/tempFolder“),如果要继续向其中添加字节,则需要创建一个新变量,指示新文件的位置。你知道吗

既然你把文件移到了一个新的地方,文件对象写入(someMoreBytes)不再写入字节,因为您最初创建的对象已被移动。因此,您必须重新打开一个新文件才能“继续”向其中写入字节,或者如上所述指定新位置,以便向现有文件添加字节。你知道吗

例如:

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+")

搬家之后。你知道吗

相关问题 更多 >

    热门问题