要以讀文件的模式打開一個(gè)文件對(duì)象,使用Python內(nèi)置的open()函數(shù),傳入文件名和標(biāo)示符,標(biāo)示符'r'表示讀。
>>> f = open('D:/test.txt','r') 注意了,對(duì)初學(xué)python的同學(xué)而言,open()函數(shù)著實(shí)存在一個(gè)不大不小的坑,而且十分不容易發(fā)現(xiàn)。
錯(cuò)誤演示:
>>> 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' 仿佛沒有什么不對(duì)的地方,一模一樣的嘛!再仔細(xì)看,斜杠的方向不一樣,為什么會(huì)出現(xiàn)這樣的情況呢,原因在于我們從系統(tǒng)中直接復(fù)制文件所在路徑所致,Windows系統(tǒng)文件路徑中的斜線符號(hào)為'/'。

這就引出了轉(zhuǎn)義字符的概念,需要在字符中使用特殊字符時(shí),python用反斜杠'/'轉(zhuǎn)義字符,所以錯(cuò)誤案例中的'/'被用作轉(zhuǎn)義,導(dǎo)致解釋器解釋文件路徑錯(cuò)誤。
改正的方法有兩種:第一、將'/'的方向反向?yàn)?/',即文首正確的寫法;第二、在含有轉(zhuǎn)義符的字符串前加‘r'表示字符串內(nèi)按原始含義解釋,不做轉(zhuǎn)義處理。(推薦!)
>>> f = open(r'D:/test.txt','r')
另附:
轉(zhuǎn)義字符表
| 轉(zhuǎn)義字符 | 描述 |
| /(在行尾時(shí)) | 續(xù)行符 |
| // | 反斜杠符號(hào) |
| /' | 單引號(hào) |
| /" | 雙引號(hào) |
| /a | 響鈴 |
| /b | 退格(Backspace) |
| /e | 轉(zhuǎn)義 |
| /000 | 空 |
| /n | 換行 |
| /v | 縱向制表符 |
| /t | 橫向制表符 |
| /r | 回車 |
| /f | 換頁 |
| /oyy | 八進(jìn)制數(shù),yy代表的字符,例如:/o12代表換行 |
| /xyy | 十六進(jìn)制數(shù),yy代表的字符,例如:/x0a代表換行 |
| /other | 其它的字符以普通格式輸出 |
新聞熱點(diǎn)
疑難解答
圖片精選