我正在编写一个python脚本来删除输入文件中的行,到目前为止看起来像是:
import sys
flag = 1
with open(sys.argv[1], 'r') as inputfile, open('e:/file_v001.txt', 'w') as outputfile:
for line in inputfile:
if line.strip() == 'BeginModeData Compose':
flag = 0
if flag:
outputfile.write(line)
if line.strip() == 'EndModuleData':
flag = 1
如果e:\ file.txt是我的输入文件,我不想像开放那样硬编码(' e:/file_v001.txt',' w'),有没有基于inputfile自动命名我的输出文件的方法?或者,如果我喜欢用python覆盖原始文件,我该怎么办?
outputfile.write(line)是否表示如果outpufile有5000行,python会写入硬盘5000次?它会更好吗:
import sys
flag = 1
buffer = ''
with open(sys.argv[1], 'r') as inputfile, open('e:/file_v001.txt', 'w') as outputfile:
for line in inputfile:
if line.strip() == 'BeginModeData Compose':
flag = 0
if flag:
buffer += line
if line.strip() == 'EndModuleData':
flag = 1
outputfile.write(buffer)
我认为python此时只会写一次硬盘,但缓冲区数据将保留在RAM中。你觉得怎么样?
此外,如何完成“拖放”工作。在Windows中输入文件而不是手动输入命令 script.py inputfile outputfile