我有一個包含關鍵字的輸入文件,並且需要對這些關鍵字過濾csv文件。讀取兩個文件並根據第一個文件的列過濾第二個文件
這裏是我嘗試使用python自動化任務。
import csv
with open('Input.txt', 'rb') as InputFile:
with open('28JUL2017.csv', 'rb') as CM_File:
read_Input=csv.reader(InputFile)
for row1 in csv.reader(InputFile):
#print row1
read_CM=csv.reader(CM_File)
next(read_CM, None)
for row2 in csv.reader(CM_File):
#print row2
if row1[0] == row2[0] :
Output= row2[0]+","+row2[1]+","+row2[5]+","+row2[6]
print Output
我剛剛從要過濾的文件的第一行。嘗試了各種各樣的東西,但不明白我出錯的地方。請在這裏指出我的錯誤。
你需要倒帶(或關閉並重新打開)的'CM_File'爲了閱讀'csv.reader'不只一次。一次讀取所有關鍵字並創建它們的集合會更有效,然後讀取一次'CM_File'並檢查每個關鍵字中是否有_any_關鍵字在讀取時位於每行中。 – martineau
如果您多次需要來自文件的數據,請將其全部讀入可以解析多次的字符串或列表。文件對象不像doobies要傳遞。你的邏輯應該是:1)讀取第一個文件2)關閉第一個文件3)讀取第二個文件4)比較來自第一個文件的數據和來自第二個文件的數據5)對第二個文件做些東西6)關閉第二個文件。 –