>> f = open( D:/test.txt , r ) 注意了,對(duì)初學(xué)..."/>
您好,登錄后才能下訂單哦!
要以讀文件的模式打開(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)為'\'。
這就引出了轉(zhuǎn)義字符的概念,需要在字符中使用特殊字符時(shí),python用反斜杠'\'轉(zhuǎn)義字符,所以錯(cuò)誤案例中的'\'被用作轉(zhuǎn)義,導(dǎo)致解釋器解釋文件路徑錯(cuò)誤。
改正的方法有兩種:第一、將'\'的方向反向?yàn)?/',即文首正確的寫法;第二、在含有轉(zhuǎn)義符的字符串前加‘r'表示字符串內(nèi)按原始含義解釋,不做轉(zhuǎn)義處理。(推薦?。?/p>
>>> 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è)文件用于讀寫。文件指針將會(huì)放在文件的開(kāi)頭。
rb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開(kāi)頭。
w 打開(kāi)一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
wb 以二進(jìn)制格式打開(kāi)一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
w+ 打開(kāi)一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
wb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
a 打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
ab 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
a+ 打開(kāi)一個(gè)文件用于讀寫。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開(kāi)時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。
ab+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。