I / O从文件中删除字符时出错

时间:2014-03-24 22:20:53

标签: python-2.7 io

嗨,我想删除我用这段代码写的文件中的最后一个字符,我收到一个错误。这是我的代码:

with open("output.txt", 'rb+') as f:
    f.seek(-1, os.SEEK_END)
    f.truncate()

和错误

f.seek(-1, os.SEEK_END)
(-43501.4, -3763303)
IOError: [Errno 22] Invalid argument

尽管使用了导入操作系统,但我得到了这个。请问我该如何解决这个问题,或者有其他方法来删除这个角色。我使用的是Windows 7操作系统和Python 2.7,谢谢

2 个答案:

答案 0 :(得分:1)

你的档案是空的;你不能在文件的开头寻找。

答案 1 :(得分:1)

Martijn是正确的,你无法从空文件的末尾寻找,并且解决方法不是使用搜索,而是将size参数提供给truncate },例如:

import os

with open('testing.txt', 'rb+') as f:
    f.truncate(max(0, os.path.getsize(f.name) - 1))