2014-06-16 88 views
0

我從一個csv獲取數據並獲取2個不同的變量,這些變量是不同格式的位置,一個用於單層,另一個用於多個樓層。我的代碼拉數據工作正常,我有麻煩寫在第二個CSV正確的行,數據正在寫,但它是這樣做的字母。從一個csv獲取輸入並寫入第二個csv

import csv 
infile = open('vlan_dev.csv', 'rU') 
reader = csv.reader(infile) 
outfile = open('testout.csv', 'w') 
writer = csv.writer(outfile) 
used_header = False 
for row in reader: 
    # skip over the CSV header 
    if not used_header: 
     used_header = True 
     continue 

    #defining variables 
    building = row[3] 
    startfloor = row[4] 
    endfloor = row[5] 
    subnet = row[6] 
    mask = row[10] 
    location1 = building.replace(' ', '')+startfloor 
    location2 = building.replace(' ', '')+startfloor+'-'+endfloor 
    iprange = subnet+'/'+mask 
    if (building != 'NETWORK CORE' and subnet.startswith('10.96.')): 
     if startfloor == endfloor: 
      print location1 
      writer.writerow(location1) 
     elif startfloor != endfloor: 
      print location2 
      writer.writerow(location2) 
     location = location1 + location2 
     print location 

我已經嘗試了第二部分的幾個選項,並有麻煩寫入正確。上面提到了正確的輸出,但是每個單元格寫入一個字母。我嘗試了其他的選擇,但是很茫然。

回答

2

writerow需要一個可迭代的,並且字符串是逐個字符迭代的。試試:

writer.writerow([location2]) 
+0

這正是我所需要的,謝謝。 – Waitkus

+0

如果我想寫入行[2]而不是第一行,我將如何編輯命令以更改寫入的位置。 – Waitkus

+0

@Waitkus你將不得不包含兩個空白列,例如'[「」,「」,location2]' – jonrsharpe

相關問題