首頁 > 後端開發 > Python教學 > Python學習筆記之open()函數開啟檔案路徑報錯問題

Python學習筆記之open()函數開啟檔案路徑報錯問題

不言
發布: 2018-04-28 10:14:37
原創
3198 人瀏覽過

這篇文章主要介紹了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(&#39;D:\test.txt&#39;,&#39;r&#39;) 
 
OSError: [Errno 22] Invalid argument: &#39;D:\test.txt&#39;
登入後複製

#彷彿沒有什麼不對的地方,一模一樣的嘛!再仔細看,斜線的方向不一樣,為什麼會出現這樣的情況呢,原因在於我們從系統中直接複製文件所在路徑所致,Windows系統檔案路徑中的斜線符號為'\'。

 

這就引出了轉義字符的概念,需要在字符中使用特殊字符時,python用反斜杠'\'轉義字符,所以錯誤案例中的'\'被用作轉義,導致解釋器解釋檔案路徑錯誤。

改正的方法有兩種:第一、將'\'的方向反向為'/',即文首正確的寫法;第二、在含有轉義符的字串前加' r'表示字串內依原始意義解釋,不做轉義處理。 (推薦!)

>>> f = open(r&#39;D:\test.txt&#39;,&#39;r&#39;)
登入後複製

另附:

轉義字元表


##單引號\"雙引號##\a\b\e##\ 000#\n\v\t#\r\f
##轉義字元

描述

\(行尾時)

續行符號

\\

#反斜線符號

\'

響鈴

已退格(Backspace)

轉義

換行

縱向製表符

橫向製表符

回車

\oyy

八進位數,yy代表的字符,例如:\o12代表換行

\xyy

十六進位數,yy代表的字符,例如:\x0a代表換行

\ other

其它的字元以普通格式輸出

#open()函數標識符表

r 以唯讀方式開啟檔案。指標將會放在檔案的開頭。一個檔案用於讀寫。新檔案。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。

w 開啟一個檔案用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。

wb 以二進位格式開啟一個檔案用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。

a 開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,請建立新文件進行寫入。

ab 以二進位格式開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,請建立新文件進行寫入。

a 開啟一個檔案用於讀寫。如果該檔案已存在,則檔案指標將會放在檔案的結尾。文件開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

ab 以二進位格式開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

相關推薦:

python設定與OpenCV的使用詳解


以上是Python學習筆記之open()函數開啟檔案路徑報錯問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板