Python - 从文件中剥离最后一个字节的最简单方法?

Jay*_*Jay 1 python truncate file

我想创建一个脚本来获取文件,剥离文件的最后一个字节.该文件可以是任何文件,而不仅仅是文本.

我一直在使用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]
Run Code Online (Sandbox Code Playgroud)

这个方法出错了,告诉我我不能下标这f=f[:fsize-2]

Ign*_*ams 10

从末尾寻找一个字节,并截断.

f = open(..., 'r+')
f.seek(-1, os.SEEK_END)
f.truncate()
f.close()
Run Code Online (Sandbox Code Playgroud)

  • 这将修改现有文件 - 他想将截断的数据写入新文件. (2认同)

Thi*_*ter 5

使用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()
Run Code Online (Sandbox Code Playgroud)