我正在尝试从文件中打印出某些信息。我有一个文件,我试图在每一行上迭代设置为变量,并在找到该字符串时打印某些输出。
我正在迭代的文件称为“代理”,包含两个IP地址。
我正在搜索的文件,如果该文件中存在IP地址,则称为“快照”。
这是我的代码:
for agn in iter(open('agent')):
for line in open('snaps'):
if agn in line:
print line.strip()
当我运行脚本时,它不会出错。它只是不打印任何东西。应该打印的内容如下:
10.0.69.184@1403769709
10.0.69.184@1403775680
10.0.69.152@1403632141
10.0.69.152@1403714562
答案 0 :(得分:2)
不知道你的文件是什么样的,但我想你可能想把你的嵌套循环解决方案改为:
with open('agent') as f1:
for agn in f1:
with open('snaps') as f2:
for line in f2:
if agn in line:
print line.strip()
答案 1 :(得分:2)
如果它只包含两个IP地址,请先将文件读入一个列表,然后在读取第二个文件时在该列表中搜索,如下所示:
with open('agent.txt') as f:
ip_addresses = list(i.rstrip() for i in f)
with open('snaps.txt') as f:
for line in f:
if line.split('@')[0] in ip_addresses:
print(line)
答案 2 :(得分:1)
我能够解决它。
for agn in iter(open('agent')):
for line in open('snaps'):
if str(agn).strip() in line:
print line.strip()
感谢您的建议。非常感谢。