2013-05-08 55 views
1

我試圖清理一個CSV文件中的格式化,以將其導入到數據庫中,我使用下面編輯就爲CSV:固定使用Python

f1 = open('visit_summary.csv', 'r') 
f2 = open('clinics.csv', 'w') 

for line in f1: 
    f2.write(line.replace('Calendar: ', '')) 

f1.close() 
f2.close() 

這工作正常如果只有一個編輯要做,但是,我必須重複此代碼19次,以便完成所有需要的更改;打開和關閉每個文件幾次,並有多個佔位符字符以便用於第一次和最後一次編輯之間的中間步驟)。有沒有更簡單的方法來做到這一點?我嘗試添加更多「f2.write(line.replace」... lines,但是,這會創建一個帶有重複行的最終文件,每個行只有一個編輯。我想我看到了我的問題(我正在多次寫入每行每個編輯),但是,我似乎無法找到解決辦法。我很新的蟒蛇,並能自我teachign自己,所以任何幫助,或方向,以更好的資源,將不勝感激。

回答

2

沒有理由你寫它之前,你不能做很多事情行:

with open('visit_summary.csv', 'r') as f1, open('clinics.csv', 'w') as f2: 
    for line in f1: 
     line = line.replace('Calendar: ', '') 
     line = line.replace('Something else', '') 
     f2.write(line) 

(我也取代openclosewith語句)

+0

謝謝!這非常有幫助!在這方面我沒有想到它,仍然習慣於這種語言。 – Owenlars2 2013-05-09 18:53:42

1
f1 = open('visit_summary.csv', 'r') 
f2 = open('clinics.csv', 'w') 

for line in f1: 
    f2.write(line.replace('Calendar: ', '').replace('String2', '').replace('String3', '')) 

f1.close() 
f2.close() 
請問

這項工作?雖然我不認爲它很「Python化」在這種情況下,你必須要小心訂貨

0
import csv 
file1 = csv.DictReader(open('visit_summary.csv', 'r')) 
output =[] 
for line in file1: 
    row= {} 
    row['calender'] = line.replace('Calender:','') 

row['string'] = line.replace('string','') 
    output.append(row) 

file = csv.DictReader(open('clinics.csv', 'w')) 
fileWriter = csv.writer(file , delimiter=",",quotechar='"', quoting=csv.QUOTE_MINIMAL) 

Header = ['something' , 'something'] 
fileWriter.writerow(Header) 
for x in output: 
temp = [x['something'],x['something']] 
fileWriter.writerow(temp) 
file.close()