文件截断如何在python中工作?



我有一个关于在python中截断文件的简单问题。假设我有一个名为myfile。txt的文件在短语hello what are you doing在一行中

首先我打开文件:f = open('c:/Users/User/Desktop/myfile.txt','r')

然后,如果我使用f.truncate(5)并关闭文件,它将改变文件,并在其中,将是hello。这意味着无论光标的位置如何,都给我5个字节的文件(如果我错了,请纠正我)。如果我在truncate方法中不使用任何数字,它将删除文件中的所有内容。但是,如果我读取文件f.read(6),这意味着光标现在位于位置6(我可以看到使用f.tell()),然后我使用f.truncate(),那么文件没有任何变化,也没有任何变化。为什么呢?我将光标移动到位置6,然后我使用截断…在w3schools上,他们说如果我没有在truncate中放入任何东西,那么当前位置将被使用。这是什么意思?

刚才遇到了同样的问题。用'r+b'模式打开你的文件。

由于某些原因,我仍然有点不确定,在二进制模式下打开文件导致truncate像文档中描述的那样工作。也不要忘记添加+模式。

这也不是一个特例。对于以二进制模式打开的文件,有相当多的文件对象方法可以按预期工作,而对于以默认文本模式打开的文件,则较少。

无论如何,希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新