2016-02-26 40 views
1

我有DNS記錄爲csv格式,它有HostName和IPAdress標籤。 İt包括公共和私人(「192.168」,「172.16」和「10.0」)的IP地址和ı要分開對方。當我運行我的代碼時,需要「預期字符緩衝區對象」的錯誤代碼。如何解決這個問題Csv讀者預期字符緩衝區對象

import csv 
with open('Dns.csv', 'rb') as csvfile: 
reader = csv.DictReader(csvfile) 
for row in reader: 
    if "10.205" in row['IPAddress']: 
    file10=open("Zone10.txt","a") 
    a=(row['hostname'], row['IPAddress']) 
    file10.write(a) 

回答

1

原因是你正在嘗試寫入元組到file10。因此下一行應該進行修改

a=(row['hostname'], row['IPAddress']) 
file10.write(a) 

例如,如果你打算把它寫爲一個字符串,你可以這樣做:

file10.write(' '.join(a)) # it will work 

a='{}{}'.format(row['hostname'], row['IPAddress']) 
file10.write(a) 

順便說一下它也將最好使用上下文管理器打開file10

關於有關CSV輸出評論:

output = [] 
for row in reader: 
    if "10.205" in row['IPAddress']: 
     output.append(row) 
if output: 
    with open('Zone.csv', 'wb') as zonefile: 
     writer = csv.DictWriter(zonefile, fieldnames=output[0].keys()) 
     writer.writeheader() 
     writer.writerows([row for row in output]) 

這是非常快速編寫的代碼,但我希望這將有助於

+0

確定的,如果我想在CSV輸出出口? – Southpaw

相關問題