有問題的代碼
with open('file.csv') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
如果有中文在csv中早处,print出來的第一個key中會帶有\(zhòng)ufeff前綴郎仆,會在你用row[key]取的時候有問題,原因是excel中用了utf_8_sig
編碼憾赁,使用codecs模塊讀取文件就可以娱颊。
解決方案
with codecs.open('file.csv', 'r', 'utf_8_sig') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
在寫入csv的時候的問題
同理构挤,由于使用utf_8_sig
編碼髓介,如果使用open寫入csv文件的話,用excel打開中文會出現(xiàn)亂碼問題筋现。
寫入的解決方案
類似的唐础,使用codecs用utf_8_sig
編碼寫入
with codecs.open('file.csv', 'w', 'utf_8_sig') as f:
writer = csv.writer(f, dialect='excel')
writer.writerow(['啊', '正常', '了'])