目錄
1.FileNotFoundError: [Errno 2] No such file or directory
2.SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
3.SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
?4.TypeError: read_file() got an unexpected keyword argument 'encoding
在學習python過程中 遇到了這個問題,
1.FileNotFoundError: [Errno 2] No such file or directory
翻譯一下的意思是,這段代碼報錯信息表示在運行時嘗試打開名為 "news.txt" 的文件,但系統(tǒng)找不到這個文件,因此引發(fā)了 FileNotFoundError 異常。
但是這個news.txt文件確實已經(jīng)被創(chuàng)建,那么報錯的原因就是代碼編寫問題,那么很可能是文件路徑設置有問題,
再次檢查了一下路徑發(fā)現(xiàn)我代碼中寫的是相對路徑,然后我改成絕對路徑,
本以為會順利解決結果又出現(xiàn)了新的錯誤
2.SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
這個錯誤提示是因為在代碼中使用了錯誤的字符編碼,錯誤提示中提到了 "unicodeescape" 編碼無法解碼位在 2-3 位置的字節(jié),這表明在讀取 "news.txt" 文件時,遇到了一個未被正確解碼的 Unicode 字符。
在 Windows 系統(tǒng)中,默認的文本文件編碼方式是 GBK(即 GB2312),而在 Linux 和 Mac 系統(tǒng)中,通常使用 UTF-8 編碼方式。因此,在讀取文件時,需要指定正確的編碼方式,以確保文件內(nèi)容的正確性和一致性。
在調(diào)用 read_file 函數(shù)時,傳入的參數(shù)'encoding='gbk'',表示使用 GBK 編碼方式讀取文件內(nèi)容。如果在 Linux 或 Mac 系統(tǒng)中使用該函數(shù),應該將參數(shù)更改為'encoding='utf8'',以確保正確讀取文件內(nèi)容。
因此當嘗試讀取使用其他編碼的文件時,可能會出現(xiàn)這個錯誤。
要解決這個問題,你需要確保文件的編碼格式與 Python 解釋器的默認編碼格式(UTF-8)一致。如果 "news.txt" 文件實際上使用了其他編碼,例如 GBK 或 GB2312,可以嘗試修改代碼中的編碼參數(shù)
如果你不確定文件使用的編碼格式,可以嘗試使用一些工具(如 Notepad++、Sublime Text 等)打開文件并檢查其編碼格式。在 Notepad++ 中,你可以通過菜單欄的 "編碼" -> "轉(zhuǎn)換編碼" 來檢查和更改文件的編碼格式。
這個問題解決之后又出現(xiàn)了新的問題
3.SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
?這個錯誤提示仍然是因為代碼中使用了錯誤的字符編碼。盡管你已經(jīng)嘗試了修改編碼參數(shù),但似乎沒有解決這個問題。
錯誤提示中提到了 "unicodeescape" 編碼無法解碼位在 2-3 位置的字節(jié),這表明在讀取 "news.txt" 文件時,遇到了一個未被正確解碼的 Unicode 字符。但此次錯誤是因為在代碼中使用了雙斜杠(//)而不是單斜杠(/)作為字符串分割符。
解決這個問題,需要將代碼中的分割符更改為單斜杠(/)
修改之后如下圖
結果又出現(xiàn)了第四個問題
?4.TypeError: read_file() got an unexpected keyword argument 'encoding
這個錯誤提示表明在調(diào)用 read_file() 函數(shù)時,傳入了一個意外的關鍵字參數(shù) 'encoding'。這可能是因為嘗試了使用 'encoding' 參數(shù)來指定文件的編碼方式,但實際上這個參數(shù)并不屬于 read_file() 函數(shù)。
問題是在于定義的 read_file() 函數(shù)沒有接收 encoding 參數(shù)。當在調(diào)用 read_file() 函數(shù)時,傳入了一個意外的關鍵字參數(shù) 'encoding',從而導致了報錯。
要解決這個問題,你需要修改 read_file() 函數(shù)的定義,讓它可以接收 encoding 參數(shù)。修改后的代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-775246.html
最終代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-775246.html
# 1.通過def定義一個函數(shù) 函數(shù)名 函數(shù)參數(shù)
def read_file(file_path,encoding):
"""
讀取文件內(nèi)容
通過with 創(chuàng)建上下文件資源管理器
通過open 打開文件
windows 默認使用gbk
"""
with open(file_path,'r', encoding='utf8')as f:
res = f.read()
return res
# 使用read_file函數(shù)讀取內(nèi)容
content = read_file('C:/Users/jin/Desktop/git_work/15.function/news.txt',encoding='gbk' )
print(content)
到了這里,關于python 報錯FileNotFoundError: [Errno 2] No such file or directory的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!