2015-05-22 64 views
0

我已經創建了一個Python 2.7腳本執行以下操作:循環檢索CSV數據追加到文件

  1. 獲取從文件夾中的文件名列表,並將其寫入到CSV文件,一個爲每一行。

而且

  • 將數據輸入到網頁上的搜索框。
  • 將搜索框的結果寫入另一個csv文件。
  • 所以我現在想什麼,是在(1)作爲其輸入爲CSV數據(2)。

    即對於csv文件中的每個文件名,它進行該單元的搜索。 (3)中的另一個csv文件,而不是隻寫結果到第二個csv文件中,我想追加結果到第一個csv文件 - 或者用兩列生成一個新的文件。

    我可以提供代碼,但由於它已經有50行了,我只是試圖讓這個問題是描述性的。

    更新:建議檢索和追加:

    with open("file.csv","a+") as f: 
        r = csv.reader(f) 
        wr = csv.writer(f, delimiter="\n") 
        result = [] 
        for line in r: 
         searchbox = driver.find_element_by_name("searchbox") 
         searchbox.send_keys(line) 
    
         sleep(8) 
    
         search_reply = driver.find_element_by_class_name("search_reply") 
    
         result = re.findall("((?<=\()[0-9]*)", search_reply.text) 
        wr.writerow(result) 
    
    +0

    你在哪裏有問題? 1,2或3? – farhawa

    +0

    問題主要在2. - 我不知道如何創建一個從csv文件讀取數據的循環。它應取1.中的每一行並將其作爲2的請求傳遞。 – Winterflags

    回答

    1

    打開來讀取和追加,存儲輸出,然後寫在最後:

    import csv 
    with open("first.csv","a+") as f: 
        r = csv.reader(f) 
        wr = csv.writer(f,delimiter="\n") 
        result = [] 
        for line in r: 
         # process lines/step 2 
         # append to result 
        wr.writerow(result) 
    
    +0

    將re輸出附加到結果列表中,然後寫入循環外部。將循環寫入循環之外至關重要 –

    +0

    謝謝。我如何將搜索結果添加到第二列?如果我寫作,它會開始一個新的行。 – Winterflags

    +0

    爲此,您將不得不寫入臨時文件,然後使用臨時文件內容更新原件 –