Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在文件中的行上迭代_Python_Python 2.7 - Fatal编程技术网

Python 在文件中的行上迭代

Python 在文件中的行上迭代,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

我试图从文件中读取每一行,每一行内容都是唯一的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_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的输入