Python—从文件中剥离最后一个字节的最简单方法?
我想制作一个脚本,它将获取一个文件,去掉文件的最后一个字节。文件可以是任何内容,而不仅仅是文本 我一直在使用seek()和tell()方法,但我找不到一种处理文件的方法来实现这一点 我认为它应该是相对简单的,但也许Python不是一个合适的工具Python—从文件中剥离最后一个字节的最简单方法?,python,file,truncate,Python,File,Truncate,我想制作一个脚本,它将获取一个文件,去掉文件的最后一个字节。文件可以是任何内容,而不仅仅是文本 我一直在使用seek()和tell()方法,但我找不到一种处理文件的方法来实现这一点 我认为它应该是相对简单的,但也许Python不是一个合适的工具 fileStripped = file[:-4] newpath = path + "\\" + fileStripped if not os.path.exists(newpath): os.makedirs(newpath) with open
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]
行下标从末尾查找一个字节并截断
f = open(..., 'r+')
f.seek(-1, os.SEEK_END)
f.truncate()
f.close()
从末尾查找一个字节,然后截断
f = open(..., 'r+')
f.seek(-1, os.SEEK_END)
f.truncate()
f.close()
用于复制文件,然后通过查找回一个字节并截断文件来删除最后一个字节:
with open(srcfile, 'r') as fsrc:
with open(destfile, 'w+') as fdest:
shutil.copyfileobj(fsrc, fdest)
fdest.seek(-1, os.SEEK_END)
fdest.truncate()
用于复制文件,然后通过查找回一个字节并截断文件来删除最后一个字节:
with open(srcfile, 'r') as fsrc:
with open(destfile, 'w+') as fdest:
shutil.copyfileobj(fsrc, fdest)
fdest.seek(-1, os.SEEK_END)
fdest.truncate()
您想就地执行还是将其写入新文件?@Jay:The
f=f.read
应该是f=f.read()
。您当前要求它做的是为read
方法下标。在unix上,您只需执行truncate-s-1 filename
@MRAB哦!很好,很好的捕获,谢谢:)你想就地执行还是将其写入新文件?@Jay:Thef=f.read
应该是f=f.read()
。您当前要求它做的是为read
方法下标。在unix上,您只需执行truncate-s-1 filename
@MRAB哦!很好,很好的捕获,谢谢:)这将修改现有的文件-他想将截断的数据写入一个新文件。嗯,首先复制很容易。最后的改变是一个字节,所以你不必费劲地去做任何事情。谢谢你,这种方法会奏效,但是我选择了TMs,因为它包括了复制步骤。非常感谢您的时间。这将修改现有文件-他想将截断的数据写入新文件。嗯,首先复制很容易。最后的改变是一个字节,所以你不必费劲地去做任何事情。谢谢你,这种方法会奏效,但是我选择了TMs,因为它包括了复制步骤。谢谢你的时间。啊,你知道怎么做很容易!非常感谢。这太完美了。啊,当你知道怎么做的时候,这太容易了!非常感谢。这太完美了。