Python 文件路徑前 +u 或 r 的區別 (機器本身存在文件或文件夾,但是程序找不到)


(1)文件路徑 +r 的場景

假設機器上有這么個文件

D:\aaa\ttt\a.txt

文件內容為

hello world
hello world

 錯誤的python 讀取方式為:

# -*- encoding=utf-8 -*-


with open('D:\aaa\ttt\a.txt', 'r') as f:
    file_info = f.read()
    print file_info

此時拋出異常,原因是 \a 和 \t 被轉義了

解決辦法1:文件路徑中用兩個\\替換一個\

# -*- encoding=utf-8 -*-


with open('D:\\aaa\\ttt\\a.txt', 'r') as f:
    file_info = f.read()
    print file_info

解決辦法2:文件路徑加上r防止轉義

# -*- encoding=utf-8 -*-


with open(r'D:\aaa\ttt\a.txt', 'r') as f:
    file_info = f.read()
    print file_info

解決辦法3 :文件路徑中用/代替\

# -*- encoding=utf-8 -*-


with open('D:/aaa/ttt/a.txt', 'r') as f:
    file_info = f.read()
    print file_info

結果都為下圖:

(2)文件路徑 +u 的場景

假設機器上有這么個文件

D:\aaa\ttt\資料\a.txt

文件內容為

hello world
hello world

 錯誤的python 讀取方式為:

# -*- encoding=utf-8 -*-


with open('D:\\aaa\\ttt\\資料\\a.txt', 'r') as f:
    file_info = f.read()
    print file_info

此時拋出異常,可以看出編碼出現了問題

 解決方法1:文件路徑中加u,表示用unicode編碼

# -*- encoding=utf-8 -*-


with open(u'D:\\aaa\\ttt\\資料\\a.txt', 'r') as f:
    file_info = f.read()
    print file_info

結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM