国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python學(xué)習(xí)筆記之open()函數(shù)打開(kāi)文件路徑報(bào)錯(cuò)問(wèn)題

2020-01-04 15:19:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

要以讀文件的模式打開(kāi)一個(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' 

仿佛沒(méi)有什么不對(duì)的地方,一模一樣的嘛!再仔細(xì)看,斜杠的方向不一樣,為什么會(huì)出現(xiàn)這樣的情況呢,原因在于我們從系統(tǒng)中直接復(fù)制文件所在路徑所致,Windows系統(tǒng)文件路徑中的斜線符號(hào)為'/'。

 Python,open,路徑報(bào)錯(cuò)

這就引出了轉(zhuǎn)義字符的概念,需要在字符中使用特殊字符時(shí),python用反斜杠'/'轉(zhuǎn)義字符,所以錯(cuò)誤案例中的'/'被用作轉(zhuǎn)義,導(dǎo)致解釋器解釋文件路徑錯(cuò)誤。

改正的方法有兩種:第一、將'/'的方向反向?yàn)?#39;/',即文首正確的寫(xiě)法;第二、在含有轉(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

換頁(yè)

/oyy

八進(jìn)制數(shù),yy代表的字符,例如:/o12代表?yè)Q行

/xyy

十六進(jìn)制數(shù),yy代表的字符,例如:/x0a代表?yè)Q行

/other

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

 

open()函數(shù)標(biāo)識(shí)符表

r 以只讀方式打開(kāi)文件。文件的指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。

rb 以二進(jìn)制格式打開(kāi)一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。

r+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。

rb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。

w 打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

wb 以二進(jìn)制格式打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

w+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

wb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

a 打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。

ab 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。

a+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開(kāi)時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。

ab+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鄂托克旗| 阿拉善右旗| 万安县| 德令哈市| 拉萨市| 桐庐县| 沙河市| 老河口市| 读书| 屯门区| 济阳县| 临武县| 微博| 井研县| 拉萨市| 襄樊市| 克东县| 霍林郭勒市| 囊谦县| 北海市| 济源市| 海城市| 洛川县| 鄂托克前旗| 红桥区| 金华市| 慈溪市| 鄂州市| 新田县| 离岛区| 堆龙德庆县| 鄱阳县| 绥阳县| 台东县| 海晏县| 蒲江县| 平山县| 新平| 上犹县| 蒙山县| 衡阳县|