Python 如果文件行中包含两个字符串

Python 如果文件行中包含两个字符串,python,if-statement,Python,If Statement,我是Python新手,因此请容忍我,如果已经讨论过此主题,请提前道歉: 我正在编写一个脚本来检查来自某个域的SMTP日志列表。我想忽略任何包含SMTP会话其他部分(如数据或RCPT等)的行 以下是脚本: import os files = os.listdir('t:\smtpsvc1') path = "t:\smtpsvc1" # I have used this variable as os.path.join wouldn't accept the variable 'files' fo

我是Python新手,因此请容忍我,如果已经讨论过此主题,请提前道歉:

我正在编写一个脚本来检查来自某个域的SMTP日志列表。我想忽略任何包含SMTP会话其他部分(如数据或RCPT等)的行

以下是脚本:

import os
files = os.listdir('t:\smtpsvc1')
path = "t:\smtpsvc1" # I have used this variable as os.path.join wouldn't accept the variable 'files'
for f in files:
    fullpath = os.path.join(path,f)
    print(fullpath)
    searchfile = open(fullpath, "r")
    for line in searchfile:
            if ('FROM' and '@somedomain.local' in line):
                print (line)
searchfile.close()
脚本运行,打印第一个文件的名称,然后检查行并输出如下数据:

2016-09-28 09:31:50 192.168.106.28应用服务器SMTPSVC1 SMTPSERVER 192.168.106.124 0数据-+250 0 139 612 47 SMTP---

这似乎触发了查找@somedomain.local的条件,但似乎忽略了if语句的FROM部分。 我做错了什么? 提前干杯

改变这一点:

if 'FROM' and '@somedomain.local' in line:
为此:

if 'FROM' in line or '@somedomain.local' in line:
我假设您要查找包含其中任何一个的行


如果您正在查找同时包含这两个内容的行,请将或更改为和。

您的意思是如果行中的“FROM”和行中的“@somedomain.local”?非常感谢您的帮助@安思:不客气。点击旁边的V,你可以随意接受答案:嗯,改为你的建议,并且得到了许多包含以下或非常相似的行2016-09-25 07:18:53 74.125.71.28 OutboundConnectionCommand和SMTPSVC1 APPSERVER-25 MAIL-FROM:+SIZE=2389 0 0 4 0 234 SMTP----因此现在需要使用FROM-in评估行并输出行,但忽略somedomain.local部分?奇怪@安思:你读了我写在底线的内容了吗???啊,这很有效!非常感谢你!我将此标记为已回答: