Python 在文件中的行上迭代
我试图从文件中读取每一行,每一行内容都是唯一的IP,在读取每一个IP之后,我正在为每个IP运行shell脚本,但似乎这只发生在最后一行,即文件末尾的最后一个IPPython 在文件中的行上迭代,python,python-2.7,Python,Python 2.7,我试图从文件中读取每一行,每一行内容都是唯一的IP,在读取每一个IP之后,我正在为每个IP运行shell脚本,但似乎这只发生在最后一行,即文件末尾的最后一个IP with open("/root/nix_bsd_mac_inventory-master/Unique.txt") as fp: for line in fp: print "Processing Ip: " + line p = subprocess.Popen(["./d42_li
with open("/root/nix_bsd_mac_inventory-master/Unique.txt") as fp:
for line in fp:
print "Processing Ip: " + line
p = subprocess.Popen(["./d42_linux_autodisc_v620"], stdout=subprocess.PIPE)
print p.communicate()
我希望它在每个ip上运行,直到最后一行(ip)结束
My Unique.txt看起来像:
12.xx.xx.16
12.xx.xx.17
12.xx.xx.18
我得到的输出:
Processing Ip: 12.xx.xx.16
Processing Ip: 12.xx.xx.17
Processing Ip: 12.xx.xx.18
Done in 100 seconds\n\nProcessed 1 IPs\n1 devices were successfully added/updated\n', None) -- ran for only last ip/line.
我希望它为每个IP运行,直到最后一行(IP)结束。您有缩进问题。在
for循环
语句中执行subprocess.Popen
Ex:
with open("/root/nix_bsd_mac_inventory-master/Unique.txt") as fp:
for line in fp:
print "Processing Ip: " + line
p = subprocess.Popen(["./d42_linux_autodisc_v620 ", line], stdout=subprocess.PIPE)
print p.communicate()
您在循环之外运行脚本,为什么希望它为每一行运行?您希望在哪里包含脚本以便它为每个ip运行?仍然不清楚为什么脚本将处理不同的ip地址,因为
line
没有以任何方式与脚本通信。@DyZ是的,我看到了。我猜这是对Popen的输入