2014-06-11 52 views
1

我有一個csv文件四列。其中一列(第三列)是IP地址。這些知識產權屬於某些公司。我試圖找到IP地址的實例,並將公司名稱附加到IP地址的末尾。 CSVPython查找和替換CSV追加

Time,Origination,IP Address, Destination 
    6/11/14 14:45,1234567890,1.2.3.4,0987654321 

例子,我想什麼:

Time,Origination,IP Address, Destination 
    6/11/14 14:45,1234567890,1.2.3.4 **"CUSTOMERNAME"**,0987654321 

這是我的代碼...它是一個爛攤子。

import pandas 
    import xlrd 
    import csv 
    import os 

    def replace_ip(file, dic): 
     spoofingFile = open('spoofing.csv','wb') 
     wr = csv.writer(spoofingFile, quoting=csv.QUOTE_ALL) 
     for i, j in dic.iteritems(): 

    ^^^^ I DONT KNOW HOW TO DO THIS! ^^^^^^   


    def csv_from_excel(): 

     wb = xlrd.open_workbook("C:\\Python27\\Work\\spreadsheet.xlsx") 
     sh = wb.sheet_by_name('Sheet1') 
     spoofingFile = open('spoofing.csv', 'wb') 
     wr = csv.writer(spoofingFile, quoting=csv.QUOTE_ALL) 

     for rownum in xrange(sh.nrows): 
      wr.writerow(sh.row_values(rownum)) 

     spoofingFile.close() 


    csv_from_excel() 
    df = pandas.read_csv('C:\\Python27\\Work\\spoofing.csv') 
    df = df.sort("Orig IP Address") 
    headers = ["InviteTime (Oracle)","Orig Number","Orig IP Address","Dest Number"] 
    df.to_csv('output.csv', cols=headers, index=False) 
    os.remove("c:\\python27\\work\\spoofing.csv") 

回答

0

將替換功能不起作用?

def replace_ip(path,ip,name): 
    fin = open(path) 
    inserted = [i.replace(ip,ip+name) for i in fin.readlines()] 
    fin.close() 
    fout = open(path,"w") 
    fout.write("\n".join(inserted)) 
    fout.close() 
#example 
#replace_ip("test.csv","1.2.3.4","COMPANYNAME")