這篇文章主要介紹了Python學習筆記之open()函數開啟檔案路徑報錯問題,現在分享給大家,也給大家做個參考。一起來看看吧
要以讀取檔案的模式開啟一個檔案對象,使用Python內建的open()函數,傳入檔案名稱和標示符,標示符'r'表示讀取。
>>> f = open('D:/test.txt','r')
注意了,對初學python的同學而言,open()函數著實存在一個不大不小的坑,而且十分不容易發現。
錯誤示範:
>>> f = open('D:\test.txt','r') Traceback (most recent call last): File"<ipython-input-56-6a0acaf613c9>", line 1, in <module> f =open('D:\test.txt','r') OSError: [Errno 22] Invalid argument: 'D:\test.txt'
#彷彿沒有什麼不對的地方,一模一樣的嘛!再仔細看,斜線的方向不一樣,為什麼會出現這樣的情況呢,原因在於我們從系統中直接複製文件所在路徑所致,Windows系統檔案路徑中的斜線符號為'\'。
這就引出了轉義字符的概念,需要在字符中使用特殊字符時,python用反斜杠'\'轉義字符,所以錯誤案例中的'\'被用作轉義,導致解釋器解釋檔案路徑錯誤。
改正的方法有兩種:第一、將'\'的方向反向為'/',即文首正確的寫法;第二、在含有轉義符的字串前加' r'表示字串內依原始意義解釋,不做轉義處理。 (推薦!)
>>> f = open(r'D:\test.txt','r')
另附:
轉義字元表
##轉義字元 | 描述 |
\(行尾時) | 續行符號 |
\\ | #反斜線符號 |
\' | ##單引號|
雙引號 | |
響鈴 | |
已退格(Backspace) | |
轉義 | ##\ 000 |
空 |
#\n |
換行 |
\v |
縱向製表符 |
\t |
橫向製表符 |
#\r |
回車 |
\f |
\oyy | 八進位數,yy代表的字符,例如:\o12代表換行 |
\xyy | 十六進位數,yy代表的字符,例如:\x0a代表換行 |
\ other | 其它的字元以普通格式輸出 |
#open()函數標識符表
r 以唯讀方式開啟檔案。指標將會放在檔案的開頭。一個檔案用於讀寫。新檔案。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。 w 開啟一個檔案用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。 wb 以二進位格式開啟一個檔案用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。 a 開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,請建立新文件進行寫入。 ab 以二進位格式開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,請建立新文件進行寫入。 a 開啟一個檔案用於讀寫。如果該檔案已存在,則檔案指標將會放在檔案的結尾。文件開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 ab 以二進位格式開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。 相關推薦: python設定與OpenCV的使用詳解以上是Python學習筆記之open()函數開啟檔案路徑報錯問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!