【发布时间】:2009-12-17 23:20:19
【问题描述】:
我一直在编写一个以 3 种不同方式搜索文件的程序。但首先,在命令行中选择使用哪个搜索程序是有区别的。
例如在命令行中输入:
程序1搜索:python file.py 'search_term' '要搜索的文件'
程序2搜索:python file.py -z '数字' 'search_term' '要搜索的文件'
程序3搜索:python file.py -x 'search_term' '要搜索的文件'
所有 3 个搜索脚本都在 file.py 中。
我目前的编码是:
import re
import sys
#program 1
search_term = sys.argv[1]
f = sys.argv[2]
for line in open(f, 'r'):
if re.search(search_term, line):
print line,
# Program 2
flag = sys.argv[1]
num = sys.argv[2]
search_term = sys.argv[3]
f = sys.argv[4]
#program 3
flag = sys.argv[1]
search_term = sys.argv[2]
f = sys.argv[3]
for line in open(f, 'r'):
if re.match(search_term, line):
print line,
程序 1 运行良好,没问题。程序 2,在文件中找到搜索词并打印出由 'number' 参数定义的前后几行,但我不知道如何执行此操作。程序 3 从 search-term 中找到完全匹配并打印出 search_term 之后的所有行。 re.match 是不够的,因为它只从字符串的开头搜索它不考虑其余部分。
我的最后一个问题是如何区分这三个程序?从命令行使用标志还是不使用标志?
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
我编辑了我的答案,希望现在答案很清楚。