在 Python 中 Ping 一个 IP 地址的 CSV 文件
Posted
技术标签:
【中文标题】在 Python 中 Ping 一个 IP 地址的 CSV 文件【英文标题】:Ping a CSV file of IP Adresses in Python 【发布时间】:2020-02-13 19:11:31 【问题描述】:初学者有一个初学者问题:我正在尝试构建一个 python 程序来 ping 一个 ip 地址的 csv 文件。
这个脚本几乎就在那里,但是当我将 csv 数据转换为列表并使用 for 循环时 在它上面......括号和引号保留在IP地址['10.10.10.1']中,这阻止了我ping。
我知道有很多方法可以从列表项中删除引号/方括号,但这里哪种方法最有效?
我想我快到了,有什么简单的解决方案?
import os
import csv
csvFile = open('hosts.csv')
csvReader = csv.reader(csvFile)
csvData = list(csvReader)
for ip in csvData:
response = os.system('ping ' + str(ip))
if response == 0:
print(ip, 'is up')
else:
print(ip, 'is down')
【问题讨论】:
【参考方案1】:您实际上是在使用 csvData = list(csvReader)
行将列表嵌入到列表中。
csv.reader()
为从 csv 文件中读取的每一行返回一个字符串列表。因此,如果您的文件中有多行,您最终会得到 n 行列表。
如果您的文件有多行,第一个 for
循环将处理。第二个for
循环将解析csv.reader()
返回的列表。
此外,您的 ping 语句将继续 ping。您可能会遇到其他意想不到的问题,但这是另一个问题。
试试这个:
import os
import csv
with open('hosts.csv') as csvfile:
reader = csv.reader(csvfile)
for line in reader:
for ip in line:
response = os.system('ping -c 1 ' + str(ip))
if response == 0:
print (ip, ' is up')
else:
print (ip, ' is down')
参考文献
Python3 CSVPinging Servers in Python
【讨论】:
感谢肯的回复,非常感谢!以上是关于在 Python 中 Ping 一个 IP 地址的 CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章