我有一個csv閱讀器和編寫器在Python中的問題。每當我嘗試使用一個CSV文件並將列數從大約37減少到6時,這就是我所獲得的輸出。一行的例子:Python CSV讀寫器處理引號:如何將行字段換成引號? (獲取三重引號作爲輸出)
0 「JOHNSON,JOHN J」,JOHN J. JOHNSON,TECH879,檢查技師,汽車檢查UNIT
通知所述第二場被引用。這是我在文本編輯器中查看時看到的內容。我想要引用所有的字段。有一個問題。首先,我的代碼,它的一個例子:
import os
import csv
alpha = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
with open(os.getcwd()+'/dl1/filepfr062220155.csv','w') as fp:
identity = 0
for i in alpha:
csvholder = open(os.getcwd()+'/dl1/pfr/'+i+'.csv','rb')
spamreader = csv.reader(csvholder, delimiter=',')
for row in spamreader:
if 'Sort Name' in row[0]:
pass
else:
###SEE HERE###
data = [[str(identity),row[0],row[1],row[2],row[3],row[37]]]
identity+=1
a = csv.writer(fp,delimiter=',',quotechar='"')
a.writerows(data)
的問題是,什麼地方我都標有「###在這裏看到###,我已經試過包裝在像這樣的報價未加引號的字段:
data = [['"'+str(identity)+'"',row[0],'"'+row[1]+'"','"'+row[2]+'"','"'+row[3]+'"','"'+row[37]+'"']]
但是,讓我輸出看起來像這樣,用三重引號,這是不能接受的......像這樣:
「」「4」「」,「約翰遜,約翰W.」 ,「」「JOHN W. JOHNSON」「」「」「」TEC5681「」「」「」「」檢查技術員「」「」「」「」車輛檢查單位「」「
這些行的原始形式就是喜歡這樣的:
「姓名」,「姓名」,「姓名」,「姓名」等...
所以我不知道爲什麼只有在最後的輸出中引用了一個字段。我要麼需要引用所有的字段,要麼沒有引用它們。
我已經嘗試過在讀寫器和寫入器上使用和不使用「quotechar」,所有這些組合。
所以,如果你可以告訴我如何保留原始文件的原始引用或如何解決這個三重引用問題,所以我可以手動重新格式化,這將是很好的。
謝謝。這個基本解決方案還有其他答案,但我想他們沒有按照我需要的方式說出來,因爲那時它不適用於我。把它放在我的程序的背景下幫助......再次感謝。 –