2024-04-18 19:14:43 发布
网友
我正在试图找到用零覆盖文件的最佳方法;文件中的每个字符都将替换为0。你知道吗
目前我的工作是:
import fileinput for line in fileinput.FileInput('/path/to/file', inplace =1): for x in line: x = 0
但这看起来效率很低,有没有更好的方法呢?你知道吗
使用regex可能更干净,但这里有一个使用fileinput的解决方案:
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
print
sys.stdout.write
与其一个接一个地替换字符,我更喜欢创建一个具有相同名称和大小的新文件:
获取当前文件的大小:
>>> file_info = os.stat("/path/to/file") >>> size = file_info.st_size
创建另一个包含0x00且大小相同的文件:
0x00
>>> f = open("/path/to/file", "w") >>> f.seek(size - 1) >>> f.write("\x00") >>> f.close() >>>
我假设0,你的意思是0x00字节值
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()
使用regex可能更干净,但这里有一个使用
fileinput
的解决方案:注意,如果使用
print
函数,将添加额外的换行符-因此我使用了sys.stdout.write
与其一个接一个地替换字符,我更喜欢创建一个具有相同名称和大小的新文件:
获取当前文件的大小:
创建另一个包含
0x00
且大小相同的文件:我假设
0
,你的意思是0x00
字节值也许用正则表达式替换?你知道吗
相关问题 更多 >
编程相关推荐