1

我想制作一个脚本来获取文件,去掉文件的最后一个字节。该文件可以是任何内容,而不仅仅是文本。

我一直在玩 seek() 和 tell() 方法,但我找不到处理允许我这样做的文件的方法。

我认为它应该相对微不足道,但也许 Python 不是一个合适的工具?

fileStripped = file[:-4]
newpath = path + "\\" + fileStripped 
if not os.path.exists(newpath): 
 os.makedirs(newpath)
with open(fname, "r") as f:
 f.seek (0, 2)           # Seek @ EOF
 fsize = f.tell()        # Get Size
 f=f.read
 f=f[:fsize-2]

此方法错误,并告诉我不能下标该f=f[:fsize-2]

4

2 回答 2

12

从末尾开始查找一个字节,然后截断。

f = open(..., 'r+')
f.seek(-1, os.SEEK_END)
f.truncate()
f.close()
于 2012-05-15T23:00:59.663 回答
6

用于shutil.copyfileobj复制文件,然后通过返回一个字节并截断文件来删除最后一个字节:

with open(srcfile, 'r') as fsrc:
    with open(destfile, 'w+') as fdest:
        shutil.copyfileobj(fsrc, fdest)
        fdest.seek(-1, os.SEEK_END)
        fdest.truncate()
于 2012-05-15T23:01:31.887 回答