Skip to main content
 首页 » 编程设计

python之函数将行附加到 .csv

2025年05月04日7think

由于我的无知,我已经有一段时间没有使用 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。不过在这种情况下,它非常微不足道。