簡體   English   中英

如何使用python在csv文件中寫入包含逗號的列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM