|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ssqchina 于 2023-7-22 21:49 编辑
def Modify_String_TXT(Find_String, Replace_String, input_file, output_file):
with open(input_file, 'r+', encoding='UTF-8') as f:
lines = f.readlines()
lines_to_write = []
delete_line = False
previous_line = None
for line in lines:
if Find_String in line:
line = line.replace(Find_String, Replace_String)
if line.strip().startswith('8'):
delete_line = True
elif line.strip().startswith('4'):
delete_line = True
else:
if line.strip() == previous_line:
continue
lines_to_write.append(line)
previous_line = line.strip()
if delete_line:
lines_to_write = lines_to_write[1:]
f.seek(0)
f.truncate()
f.writelines(lines_to_write)
input_filename = 'f:\\'+input('请输入f盘下要转换的文件名')+'.txt'
output_filename = 'f:\\'+input('请输入f盘下要保存的文件名')+'.txt'
Modify_String_TXT(' 0', '0|0', input_filename, output_filename)
Modify_String_TXT(' 3', '0|3', input_filename, output_filename)
Modify_String_TXT(' 6', '1|6', input_filename, output_filename)
修改之前的代码是可以运行的
def Modify_String_TXT(Find_String, Replace_String, input_file):
with open(input_file, 'r+', encoding='UTF-8') as f:
lines = f.readlines() # 读取文件的所有行
lines_to_write = [] # 存储要写入文件的行
delete_line = False # 是否删除当前行的标志
previous_line = None # 上一行内容
for line in lines:
if Find_String in line:
line = line.replace(Find_String, Replace_String)
if line.strip().startswith('8'): # 如果行以'8'开头,设置删除标志为True
delete_line = True
elif line.strip().startswith('4'): # 如果行以'4'开头,设置删除标志为True
delete_line = True
else:
if line.strip() == previous_line: # 如果当前行与上一行内容相同,则跳过当前行
continue
lines_to_write.append(line) # 将当前行添加到存储列表中
previous_line = line.strip() # 更新上一行内容为当前行的内容
if delete_line:
lines_to_write = lines_to_write[1:] # 如果需要删除行,则将列表的第一行移除
f.seek(0) # 将文件指针移到文件开头
f.truncate() # 清空文件内容
f.writelines(lines_to_write) # 将修改后的行写回文件
input_file = 'f:\\'+input('请输入f盘下要关键字替换的文件名')+'.txt'
Modify_String_TXT(' 0', '0|0', input_file)
Modify_String_TXT(' 3', '0|3', input_file)
Modify_String_TXT(' 6', '1|6', input_file) |
|