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

末尾から 1 バイトを求めて切り捨てます。

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

shutil.copyfileobjファイルをコピーしてから、1 バイト戻ってファイルを切り詰めることにより、最後のバイトを削除するために使用します。

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 に答える