[英]How to write list which contains comma in csv file using python?
列表包含以下數據,
['奧巴馬', '約翰·巴塔', 'IN, 33, 33', '444', '']
我正在嘗試使用以下代碼將此數據寫入 csv 文件,
with open(output_file, 'w') as writeFile:
writer = csv.writer(writeFile, delimiter=',', quotechar="'", quoting=csv.QUOTE_NONE)
writer.writerow(colValues)
但是在 csv 文件中低於輸出,
"奧巴馬","約翰·巴塔",""IN, 33, 33"',"444",""
我不想在 '"IN, 33, 33"' 之間加上單引號。
期望的輸出:
"奧巴馬","約翰·巴塔","IN, 33, 33","444",""
如果您從csv.writer
調用中消除quotechar
參數,它應該會為您提供所需的行為。 例如,您的函數調用將變為
writer = csv.writer(writeFile, delimiter=',', quoting=csv.QUOTE_NONE)
quotechar
參數是在存在delimiter
或其他特殊字符時放置的內容。
從您的示例輸出中,您似乎想要引用所有字段。 因此,直接的方法是:
writer = csv.writer(writeFile, delimiter=',',
quotechar='"', quoting=csv.QUOTE_ALL)
我還將quotechar
更改為雙引號,因為這也在您的示例輸出中。
也許這太簡單了,但是默認寫入,讀取返回原始列表:
import csv
col_values = ['Obama', 'John Barta', 'IN, 33, 33', '444', '']
with open('data.csv', 'w') as writeFile:
writer = csv.writer(writeFile)
writer.writerow(col_values)
#=> Obama,John Barta,"IN, 33, 33",444,
with open('data.csv', 'r') as f:
reader = csv.reader(f)
p_list = list(reader)
print(p_list)
#=> [['Obama', 'John Barta', 'IN, 33, 33', '444', '']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.