我想使用 python 從 csv 檔案中讀取資料,但在使用以下代碼后,文本中有一些額外的字符和大括號,這些字符和括號不在原始資料中。請幫助洗掉它。
import csv
with open("data.csv",encoding="utf8") as csvDataFile:
csvReader = csv.reader(csvDataFile)
for row in csvReader:
print(row)

閱讀后顯示的是:- ['\ufeffwww.aslteramo.it']
uj5u.com熱心網友回復:
這是帶有位元組順序標記 (BOM) 的 utf-8 編碼 - 在 Windows 中用作簽名。
使用utf-8-sig編碼而不是打開檔案utf8
uj5u.com熱心網友回復:
\ufeff是 UTF-8 BOM(也稱為“零寬度無間斷空間”字符)。
它有時用于表示檔案是 UTF-8 格式。
你可以str.replace('\ufeff', '')在你的代碼中使用它來擺脫它。像這樣:
import csv
with open("data.csv",encoding="utf8") as csvDataFile:
csvReader = csv.reader(csvDataFile)
for row in csvReader:
print([col.replace('\ufeff', '') for col in row])
另一種解決方案是使用“utf-8-sig”編碼而不是“utf-8”編碼打開檔案。
順便說一句,大括號是添加的,因為它row是一個串列。如果您的 CSV 檔案只有一列,您可以從每一行中選擇第一項,如下所示:
print(row[0].replace('\ufeff', ''))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/368893.html
