如何执行AND运算符以使用文件行中的一个或多个参数进行搜索?

时间:2018-04-20 12:08:07

标签: python-3.x

我正在尝试创建一个能够在文件行中使用一个或多个参数进行搜索的python脚本,但经过多次测试我无法做到这一点 这是我的python代码:

for log_files in os.listdir(path): 
files = os.path.join(path, log_files)
strng = open(files)
for lines in strng.readlines():
            lines = re.sub('"','', lines)
            if (sys.argv[2] and sys.argv[3]) in lines:
                # if sys.argv[3] in lines:
                # print("Matched !!")
                lines=log_files+"__"+lines
                print(lines)
                content_array.append(lines)

代码显示了一个结果,这意味着它没有考虑if语句中的两个参数

1 个答案:

答案 0 :(得分:0)

您的代码存在问题

 if (sys.argv[2] and sys.argv[3]) in lines:

应该是

if sys.argv[2] in lines and sys.argv[3] in lines:

请参阅this question以获取参考资料

其他可能的解决方案是使用all()

arg_list = [sys.argv[2], sys.argv[3]]
for lines in strng.readlines():
    if all(arg in lines for arg in arg_list):
        print(lines)