ファイルを0で上書きする最善の方法を見つけようとしています。ファイル内のすべての文字が0ファイルの行を0で上書きする方法
に置き換えられます現在、私はこの作業を持っている:
import fileinput
for line in fileinput.FileInput('/path/to/file', inplace =1):
for x in line:
x = 0
しかし、これは非常に非効率に見えます。それを行うための良い方法はありますか?
ファイルを0で上書きする最善の方法を見つけようとしています。ファイル内のすべての文字が0ファイルの行を0で上書きする方法
に置き換えられます現在、私はこの作業を持っている:
import fileinput
for line in fileinput.FileInput('/path/to/file', inplace =1):
for x in line:
x = 0
しかし、これは非常に非効率に見えます。それを行うための良い方法はありますか?
代わりの文字を一つずつ交換し、私は、同じ名前と同じサイズで、新しいファイルを作成することを好みます現在のファイル:
>>> file_info = os.stat("/path/to/file")
>>> size = file_info.st_size
0x00
を含む別のファイルをsa私サイズ:
>>> f = open("/path/to/file", "w")
>>> f.seek(size - 1)
>>> f.write("\x00")
>>> f.close()
>>>
私は0
によって仮定、あなたは正規表現を使用して
正規表現の置き換えを使用しますか?
import re
path = "test.txt"
f = open(path, "r")
data = re.sub(".", "0", f.read())
f.close()
f = open(path, "w")
f.write(data)
f.close()
あなたはこのチェックすることができますのサイズを取得
:
import fileinput
for line in fileinput.FileInput('/path/to/file', inplace =1):
print len(line)*'0'
0x00
バイトの値を意味し、おそらくクリーナーですが、ここでfileinput
を使用してソリューションです:
import fileinput
import sys
for line in fileinput.FileInput('/path/to/file', inplace=True):
line = '0' * len(line)
sys.stdout.write(line + "\n")
注意、 print
関数を使用すると、余分な改行が追加されるので、sys.stdout.write
「0」は、「0x00」バイトまたはASCII文字「0」を意味しますか? – EbraHim