2015-09-03 133 views
1

標準我要尋找一些指針做以下閱讀CSV和寫在蟒蛇

從排序的CSV讀取數據,並創建一個基於標準不同的CSV文件,基於了新的CSV文件。我的輸入文件看起來像下面

Ip  Subnet   location 
1.0.1.2 255.255.255.0 Argentina 
1.0.1.3 255.255.255.0 Argentina 
1.3.4.5 255.255.255.0 Belgium 
1.2.4.5 255.255.255.0 Belgium 
3.4.5.6 255.255.255.0 California 
1.2.7.8 255.255.255.0 California 

我想什麼是我應該得到一個CSV文件每個位置(3個文件按照上面的輸入文件) 當讀取輸入file..the時刻找到一個不同的位置就應該開始創建新的文件,並寫入數據...,並再次找到一個不同的位置,它應該切換到一個新的文件

在上面實現任何幫助將是非常有益的......或有任何其他這樣做的方式?

+1

你千方百計地去解決這個問題?如果是,那麼請顯示你的代碼。 –

+1

我投票關閉這一問題作爲題外話,因爲SO不是代碼編寫的服務,請您出示的編碼工作 – EdChum

回答

0

以下腳本應該可以工作。它將根據當前國家/地區創建一個CSV文件名。它假定你輸入的日誌文件是標準CSV格式:

import csv 

with open('log.csv') as f_input: 
    csv_input = csv.reader(f_input) 
    headings = next(csv_input) 

    country = '' 
    f_output = None 

    for cols in csv_input: 
     if country != cols[2]: 
      country = cols[2] 

      if f_output: 
       f_output.close() 

      f_output = open(country + ".csv", "wb") 
      csv_output = csv.writer(f_output) 
      csv_output.writerow(headings) 

     csv_output.writerow(cols) 

    f_output.close() 

因此,舉例來說,你會得到一個名爲Argentina.csv具有以下內容:

Ip,Subnet,location 
1.0.1.2,255.255.255.0,Argentina 
1.0.1.3,255.255.255.0,Argentina 
+0

非常感謝馬丁.....它的工作就像我已經改變了被移除的魅力 唯一「標題=下一個(csv_input)」 和指定行在地方「csv_output.writerow(行)」的...然後在所有的文件得到了標題......前,我得到了第2行中的所有文件德標題。 – Rakesh