以下 Python 代码含义为处理 input.txt
文件,删除其中含有“##”、“- ”的行,并生成 output.txt
文件
- 处理文本对象文件名
input_filename
,默认为input.txt
- 生成文本对象文件名
output_filename
,默认为output.txt
- 排除项列表
exc_list
,每个元素为exc
- 排除项
exc
,意为删除含有该字符串的行
一般用下面这个就行,也方便扩展
import sys
exc_list = ["##", "- "] # 要删除含有特定字符串列表
input_filename = 'input.txt' # 输入文件名
output_filename = 'output.txt' # 输出文件名
# 接收命令行传递的文件名参数
if len(sys.argv) == 2:
input_filename = sys.argv[1]
with open(input_filename, 'r', encoding='utf-8-sig') as input_file:
with open(output_filename, 'w', encoding='utf-8') as output_file:
for line in input_file:
exclude = False
for exc in exc_list:
if exc in line:
exclude = True
break
if not exclude:
output_file.write(line)
如果仅考虑删除含有特定字符串的行,不考虑后续扩展,可以精简至如下
import sys
exc_list = ["##", "- "] # 要删除含有特定字符串列表
input_filename = 'input.txt' # 输入文件名
output_filename = 'output.txt' # 输出文件名
# 接收命令行传递的文件名参数
if len(sys.argv) == 2:
input_filename = sys.argv[1]
with open(input_filename, 'r', encoding='utf-8-sig') as input_file, \
open(output_filename, 'w', encoding='utf-8') as output_file:
lines = [line for line in input_file if not any(exc in line for exc in exc_list)]
output_file.writelines(lines)
最后在命令行窗口输入以下命令运行 py 文件
python <py文件名> [处理文本对象文件名]
::如python delete_specific_rows.py input.txt