2016-08-15 50 views
-6

我試圖編寫腳本,它循環遍歷特定目錄中的所有CSV文件,讀取它們,並用0替換所有子字符串_如何打開目錄中的所有文件並將更改保存在同一文件中?

我的代碼是:

import csv 
f = open ('Tripdata_30_20160806.CSV') 
csv_f = csv.reader(f) 
for i in csv_f: 
    for l in i: 
     if "_" in l: 
      print l.replace("_", "0") 
      print l 
    continue 
f.close() 

我的輸出是:

2199725502 
21997255_2 
2199868606 
21998686_6 
2199726205 
21997262_5 
1756520101 
17565201_1 
1756384803 
17563848_3

我如何能夠讀取指定目錄下的所有文件,而不指定文件名? CSV文件名稱是動態的。

其次,我怎樣才能保存更改在同一個文件?

+3

請出示你的企圖。 – Julien

+3

請注意,https://stackoverflow.com不是一個免費的腳本/代碼寫入服務。如果您告訴我們您迄今爲止所嘗試的內容(包括您已經使用的腳本/代碼)以及您卡住的位置,那麼我們可以嘗試幫助解決特定問題。您還應該閱讀[我如何提出一個好問題?](https://stackoverflow.com/help/how-to-ask)。 – DavidPostill

+0

我沒有注意到我沒有添加代碼檢查... 請改變你的不良反饋,我轉發它,因爲它應該問。 –

回答

0

如果您只是想替換文件中的所有下劃線,請不要打擾CSV模塊。只需讀取文件,替換下劃線,然後將修改後的文本寫回文件。

filename = 'C:\\path\\to\\file.csv' 

f = open(filename) 
txt = f.read() 
f.close() 

f = open(filename, 'w') 
f.write(txt.replace("_", "0")) 
f.close() 

枚舉目錄的內容,您可以使用os.listdir()

import os 

d = 'C:\\some\\folder' 

for f in os.listdir(d): 
    filename = os.path.join(d, f) 
+0

感謝枚舉工作偉大 –

相關問題