由于我的无知,我已经有一段时间没有使用 for 循环编写函数和写入文件了。
此函数被赋予一个 IP 地址以从文本文件中读取; ping IP,搜索收到的数据包,然后将其附加到 .csv
我的问题是:是否有更好或更简单的写法?
def pingS (IPadd4):
fTmp = "tmp"
os.system ("ping " + IPadd4 + "-n 500 > tmp")
sName = siteNF #sys.argv[1]
scrap = open(fTmp,"r")
nF = file(sName,"a") # appends
nF.write(IPadd4 + ",")
for line in scrap:
if line.startswith(" Packets"):
arrT = line.split(" ")
nF.write(arrT[10]+" \n")
scrap.close()
nF.close()
注意:如果您需要完整的脚本,我也可以提供。
最佳答案
在我看来,这至少让正在发生的事情变得更加明显。 len('Received = ') 显然可以替换为常量。
def pingS (IPadd4):
fTmp = "tmp"
os.system ("ping " + IPadd4 + "-n 500 > tmp")
sName = siteNF #sys.argv[1]
scrap = open(fTmp,"r")
nF = file(sName,"a") # appends
ip_string = scrap.read()
recvd = ip_string[ip_string.find('Received = ') + len('Received = ')]
nF.write(IPadd4 + ',' + recvd + '\n')
您也可以尝试查看 Python csv
module用于写入 csv。不过在这种情况下,它非常微不足道。
关于python - 函数将行附加到 .csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220475/