問題描述:
目的:在command.txt檔案中讀取文字,然後轉換成數字列表。
這是**內容:
cmd =
open
("command.txt"
,"rt"
,encoding =
"utf-8"
)datals =
for line in cmd:
line = line.replace(
"\n",""
)","))
for ls in datals:
print
(ls)
報錯:
traceback (most recent call last)
:, line 15,in
ls[i]
=eval
(ls[i]
) file ""
, line 1
300
^syntaxerror: invalid character in identifier
原因:
經過測試通過以上方法列印出的第一行開頭出現「\ufeff」詭異字元。
通過查閱資料發現「\ufeff」叫bom,用來宣告該檔案的編碼資訊。
所以需要去掉開頭的bom,程式才能正常執行!!!
如何解決呢?
解決方案:
在讀取目標檔案時,指定編碼方式為「utf-8-sig」即可。其中「sig」全拼為「signature」,意味「帶有標籤的utf-8」。
cmd =
open
("command.txt"
,"rt"
,encoding =
"utf-8-sig"
)#指定編碼方式為「utf-8-sig」
datals =
for line in cmd:
line = line.replace(
"\n",""
)","))
for ls in datals:
print
(ls)
如此就大功告成了!!!
我的問題解決了,你的呢?
Python 讀取TXT檔案
一 開啟檔案 f open filename,access mode r buffering 1 filename 檔名 access mode 開啟方式,r讀,w寫,a追加,r w a 都是以讀寫方式開啟,rb二進位制讀,wb二進位制寫,rb wb ab 二進位制讀寫 buffering 預設值 ...
python 讀取txt檔案
txt檔案內容 1.全部讀取 file open e others 測試.txt r 開啟檔案 f all file.read 讀取所有檔案內容 print f all file.close 關閉檔案結果 2.按行讀取 file open e others 測試.txt r 開啟檔案 for lin...
python 讀取txt 檔案
filename users sr00117 desktop bom1.txt txt檔案和當前指令碼在同一目錄下,所以不用寫具體路徑 def readtxt valuelist all list alone list with open filename,r as file to read for...