欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

open函數(shù)-打開文件并返回文件對象

汽車電子技術(shù) ? 來源:安迪python學(xué)習(xí)筆記 ? 作者:安迪python學(xué)習(xí)筆記 ? 2023-02-23 10:06 ? 次閱讀
    1. open() 函數(shù)的作用
    1. open函數(shù)語法參考
    1. open()函數(shù)參數(shù)說明
      1. file參數(shù)
      1. encoding 參數(shù)
      1. errors參數(shù)
      1. mode參數(shù)
    1. mode參數(shù)詳解
      1. 準(zhǔn)備工作
      1. w 寫入模式
      1. a 追加模式
      1. r 只讀模式
    1. 總結(jié)
      1. 代碼總結(jié)
      1. 路徑的轉(zhuǎn)義
      1. mode模式
      1. 圖片總結(jié)

1. open() 函數(shù)的作用

open[???p?n]:打開。

open的中文釋義是打開。

open( )函數(shù)的作用是打開文件。

【返回值】

open函數(shù)返回的是一個文件對象。

2. open函數(shù)語法參考

open 函數(shù)語法如下:

open(file, mode='r', encoding='None', errors='None')

file[fa?l]:文件。

mode[m??d]:模式。

encoding[?n?k??d??]:編碼。

errors[?er?z]:錯誤。

none [n?n]:沒有。

open( )函數(shù)中的參數(shù)還有很多,這里介紹4個常用參數(shù)。

3. open()函數(shù)參數(shù)說明

1. file參數(shù)

file[fa?l]:文件。

file 是必需參數(shù)。

參數(shù)file 表示要打開文件的路徑。

路徑可以是絕對路徑,也可以是相對路徑。

絕對路徑是指文件在硬盤上真正存在的路徑。

相對路徑是針對當(dāng)前文件夾這一參考對象,來描述文件路徑的形式。

參考《68.Python的相對路徑》。

2. encoding 參數(shù)

encoding[?n?k??d??]:編碼。

參數(shù) encoding 表示文件的編碼方式,文件編碼方式一般為 'utf-8'。

為了避免程序報錯或者讀取到的內(nèi)容出現(xiàn)亂碼,需要把 encoding 設(shè)置為 'utf-8',即寫為 encoding='utf-8'。

編碼的詳細(xì)知識,以后在做詳細(xì)介紹。

3. errors參數(shù)

errors 參數(shù)表示讀寫文件時碰到錯誤的報錯級別。

strict [str?kt]:嚴(yán)格的。

strict:嚴(yán)格級別。字符編碼有報錯即拋出異常。也是默認(rèn)級別,errors 參數(shù)值傳入None 即按此級別拋出異常。

ignore [?ɡ?n??]:忽視、忽略。

ignore:忽略級別。字符編號有錯誤,忽略掉。

推薦errors參數(shù)的取值為'ignore',表示在遇到編碼錯誤時忽略該錯誤,程序會繼續(xù)執(zhí)行,不會退出。

replace [r??ple?s]:替代。

replace:替換級別,字符編碼有錯的,替換成?。

4. mode參數(shù)

mode[m??d]:模式。

mode 是可選參數(shù)。

參數(shù)mode決定了打開文件的模式。

r:以只讀模式打開文件。

t:以文本文件模式打開文件。

b:以二進(jìn)制文件文件模式打開文件。

w:以只寫模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則覆蓋文件的內(nèi)容。

x:以獨占創(chuàng)建模式打開文件,如果文件不存在,則創(chuàng)建并以寫入模式打開;如果文件已存在,則引發(fā)FileExistsError異常。

a:以追加模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則在文件末尾追加。

+:以更新(讀寫)模式打開文件,必須與r、w或a組合使用,才能設(shè)置文件為讀寫模式。

這些字符可以進(jìn)行組合,以表示不同類型的文件的打開模式,如下表所示。

圖片

69-1mode模式

【備注】上圖來源于《看漫畫學(xué)Python》。

【溫馨提示】

參數(shù) mode 可以不寫,不寫時mode默認(rèn)值為r,即只讀模式。

4. mode參數(shù)詳解

1. 準(zhǔn)備工作

  1. 我在D盤里新建一個文件夾命名為69
  2. 我的69文件夾中有1個名為img的文件夾,有1個名為69的ipynb文件。(img文件夾是我存儲圖片用的,大家可以不用理會)

vscode編輯器資源管理器中的目錄如下所示:

圖片

69-2

硬盤中的目錄如下所示:

圖片

69-3

  1. 我的代碼在名為69的ipynb文件中編寫。
  2. 我用的vscode編輯器,編輯器打開的文件夾為69

【備注】

編輯器打開的文件夾不同,則相對路徑不同。

2. w 寫入模式

w:以只寫模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則覆蓋文件的內(nèi)容。

【語法解析】

  1. 文件不存在,則創(chuàng)建文件。
  2. 文件存在,則覆蓋文件的內(nèi)容。

以絕對路徑,w只寫模式打開文件:

f = open ("D:\\\\69\\成績1.txt", "w", encoding="utf-8")

以相對路徑,w只寫模式打開文件:

f = open ("成績2.txt", "w", encoding="utf-8")

【代碼解析】

f 是變量名,接收open 函數(shù)返回的文件對象;

"D:\\\\69\\成績1.txt"是文件的絕對路徑。

"成績2.txt"是文件的相對路徑。

w表示只寫模式。

w 模式下,文件存在則打開文件,文件不存在則新建文件。

我們在準(zhǔn)備工作時是沒有新建過txt文件,因此成績1.txt成績2.txt文件此時不存在。

不存在則新建一個文件。

因此,運行代碼后我們觀察資源管理器目錄或者69文件夾,我們發(fā)現(xiàn)多了成績1.txt成績2.txt2個文件。

圖片

69-4

這就是文件不存在則新建文件的意思。

【課堂練習(xí)】

修改路徑參數(shù),用絕對路徑的方法在桌面新建一個名為測試.txt的文件。

不知道桌面的絕對路徑的可以用【shift】方法隨便查看一個桌面文件的絕對路徑。

下面就是我查看的桌面某個文件的路徑:

"C:\\Users\\xiaoyuzhou\\Desktop\\空.docx"

參照上面的代碼修改路徑參數(shù),代碼如下:

f = open ("C:\\Users\\xiaoyuzhou\\Desktop\\測試.txt", "w", encoding="utf-8" )

【終端輸出】

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \\UXXXXXXXX escape

運行上面的代碼,程序報錯。

程序報錯,我們首先考慮路徑參數(shù)轉(zhuǎn)義字符問題。

將路徑參數(shù)中的所有\\都多加上一個反斜杠\\,修改如下:

f = open ("C:\\\\Users\\\\xiaoyuzhou\\\\Desktop\\\\測試.txt", 
"w", 
encoding="utf-8" )

運行代碼后,我們發(fā)現(xiàn)程序能夠正常運行。

我們查看電腦桌面,發(fā)現(xiàn)電腦桌面多了一個名為測試.txt的文件。

但我們發(fā)現(xiàn)增加斜桿的方法實在太麻煩,那有沒有其它簡便的方法呢?

其實我們可以通過在路徑參數(shù)前面加上一個字母r/R,這時候就不需要使用反斜桿進(jìn)行轉(zhuǎn)義了。

【路徑參數(shù)前增加一個r】

f = open (r"C:\\Users\\xiaoyuzhou\\Desktop\\測試1.txt", 
"w", 
encoding="utf-8" )

【路徑參數(shù)前增加一個R】

f = open (R"C:\\Users\\xiaoyuzhou\\Desktop\\測試2.txt", 
"w", 
encoding="utf-8" )

大家觀察電腦桌面,我們就成功的新建了測試1.txt測試2.txt2個文件。

我們繼續(xù)講解w模式的如果文件存在,則覆蓋文件的內(nèi)容。

我們剛才新建了成績1.txt成績2.txt2個文件。

那如果文件存在,則w模式可以直接寫入。

成績1.txt中寫入張三,90分

f = open ("成績1.txt", "w", encoding="utf-8")
f.write("張三,90分")
f.close( )

上述代碼的作用是將張三,90分寫入到文件成績1.txt中。

【代碼解析】

f = open ("成績1.txt", "w", encoding="utf-8")

f 是變量名,接收open函數(shù)返回的文件對象。

"成績1.txt"是open函數(shù)的file參數(shù),表示文件的相對路徑;

"w"是open函數(shù)的mode參數(shù),表示只寫模式;

encoding表示字符編碼格式為utf-8。

f.write("張三,90分")

上述代碼的作用是將張三,90分寫入到文件對象中,即寫入到成績1.txt。

【將內(nèi)容寫入文件的語法】

f.write(obj)

f 是文件對象,就是一個變量名,你可以自己命名。

文件對象后緊跟一個英文小圓點.

write是方法名。

obj為要寫入的內(nèi)容,這里要寫入的內(nèi)容是張三,90分

運行代碼后,大家查看成績1.txt文件,如下所示:

圖片

69-5

【關(guān)閉文件語法】

f.close( )

f 是變量名,接收open函數(shù)返回的文件對象。

文件對象后緊跟一個英文小圓點.

close是方法名。

【溫馨提示】

大家在Python中操作文件時,注意讀寫完畢后都要進(jìn)行關(guān)閉。這根我們?nèi)粘I钪械牟僮魇且粯拥?,不關(guān)閉文件,我們是沒辦法對文件進(jìn)行刪除的。

上面代碼我們完成了寫入功能,下面我們講解覆蓋文件的內(nèi)容的含義:

【覆蓋文件的內(nèi)容】

再執(zhí)行下面的代碼之前,大家先打開成績1.txt,確定文件里的內(nèi)容為張三,90分

下面的代碼要實現(xiàn)的功能是將李四,60分寫入文件成績1.txt

f = open ("成績1.txt", "w", encoding="utf-8")
f.write("李四,60分")
f.close()

運行上面的代碼后,我們再觀察成績1.txt文件,如下所示:

圖片

69-6

之前的張三,90分內(nèi)容被覆蓋了,只保留了最后1次寫入的內(nèi)容,這就是覆蓋文件內(nèi)容的意思。

【知識回顧】

w:以只寫模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則覆蓋文件的內(nèi)容。

那如果我不想刪除文件本來就存在的內(nèi)容,怎么辦呢。

我們可以采用追加模式。

3. a 追加模式

a:以追加模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則在文件末尾追加。

a追加模式w只寫模式的區(qū)別在于追加模式保留原有內(nèi)容,只寫模式覆蓋原有內(nèi)容。

  1. 將mode參數(shù)修改為a
  2. 寫入內(nèi)容為王五,77分
f = open ("成績1.txt", "a", encoding="utf-8")
f.write("王五,77分")
f.close()

打開成績1.txt,如下圖所示:

圖片

69-7

打開成績1.txt可以看到王五,77分已經(jīng)寫入到文件中,且原有的內(nèi)容李四,60分依然存在,這就是追加模式。

但大家發(fā)現(xiàn)我們寫入的內(nèi)容和原本的內(nèi)容之間沒有符號作為間隔,不方便我們觀看。那該如何修改呢?

我們采用轉(zhuǎn)義字符的方法可以解決上述問題。

\\n可以實現(xiàn)換行功能:

f = open ("成績1.txt", "a", encoding="utf-8")
f.write("\\n趙六,66分")
f.close()

輸入后如下圖所示:

圖片

69-8

【轉(zhuǎn)義字符】

圖片

69-9轉(zhuǎn)義字符

【備注】上圖來源于《風(fēng)變編程》。

4. r 只讀模式

r:以只讀模式打開文件。

只能打開已經(jīng)存在的文件。

如果文件不存在,程序不會創(chuàng)建新的文件,會報錯。

f = open ("成績9.txt", "r", encoding="utf-8")

【終端輸出】

FileNotFoundError: [Errno 2] No such file or directory: '成績9.txt'

[Errno 2] No such file or directory: '成績9.txt' :沒有這樣的文件或目錄: '成績9.txt '

f = open ("成績1.txt", "r", encoding="utf-8")
f.close()

運行上述的代碼,成績1.txt文件其實已被我們成功打開。

但Python中的打開和我們?nèi)粘I钪械拇蜷_不是一個含義。

我們工作中的打開,肉眼是可以看到一個具體的文檔的。

Python中的打開,其實就是得到一個文件對象,方便我們后續(xù)操作文件,這個文件對象我們?nèi)庋凼强床灰姷摹?/p>

有時候我們并不需要對文件進(jìn)行寫的操作,我們只需要打開文件即只讀模式,此時我們的第二個參數(shù)mode 就為r,注意,r也可以不寫。

mode 參數(shù)就講解到這里,剩下的模式將不再進(jìn)行贅述。

5. 總結(jié)

1. 代碼總結(jié)

# w只寫模式
f = open ("花名冊.doc", "w", encoding="utf-8")
f.write("王小溪")

# a追加模式
f = open ("花名冊.doc", "a", encoding="utf-8")
f.write("\\n李華華")

# r只讀模式
f = open ("花名冊.doc", "r", encoding="utf-8")

# 關(guān)閉文件
f.close()

2. 路徑的轉(zhuǎn)義

絕對路徑參數(shù)前面加上一個字母r/R,這時候就不需要使用反斜桿進(jìn)行轉(zhuǎn)義了。

3. mode模式

w:以只寫模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則覆蓋文件的內(nèi)容。

a:以追加模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則在文件末尾追加。

r:以只讀模式打開文件。

4. 圖片總結(jié)

圖片

69-10. open函數(shù)

【溫馨提示】

如果初學(xué)者在本節(jié)的代碼遇到報錯,基本是file路徑參數(shù)的錯誤,建議大家回看相對路徑的相關(guān)知識,相對路徑是非常重要的一個知識點,這個知識點不掌握,后面將寸步難行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1860

    瀏覽量

    32443
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    63006
  • Open
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    11102
收藏 人收藏

    評論

    相關(guān)推薦

    飛凌嵌入式ElfBoard ELF 1板卡-通用文件I/O模型之open

    為相應(yīng)的文件系統(tǒng)操作,或者設(shè)備驅(qū)動程序操作。接下來我們一起了解一下open()函數(shù)。open()函數(shù)可以
    發(fā)表于 10-10 09:09

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡 -通用文件I/O模型之open

    為相應(yīng)的文件系統(tǒng)操作,或者設(shè)備驅(qū)動程序操作。接下來我們一起了解一下open()函數(shù)open()函數(shù)可以
    發(fā)表于 10-11 08:56

    Fatfs文件系統(tǒng)函數(shù)f_open打開文件,stdio庫的fopen函數(shù)不能打開

    如題:Fatfs文件系統(tǒng)問題,文件系統(tǒng)函數(shù)f_open打開文件,stdio庫的fopen
    發(fā)表于 01-24 07:24

    Labview 打開/創(chuàng)建/替換文件函數(shù) 操作open文件沒有打開

    Labview 打開/創(chuàng)建/替換文件函數(shù) 操作open文件沒有打開,去掉關(guān)閉
    發(fā)表于 04-11 09:05

    請問在DFS上打開文件open操作返回-19是怎么回事?

    dfs上使用elm文件系統(tǒng)+spi flash 打開文件 open 操作返回 -19int fd = o
    發(fā)表于 02-07 11:02

    源碼-用對象打開Excel文件例程

    易語言是一門以中文作為程序代碼編程語言學(xué)習(xí)例程:易語言-源碼-用對象打開Excel文件例程
    發(fā)表于 06-06 17:43 ?5次下載

    C語言程序開發(fā)中關(guān)于函數(shù)返回值的問題

    C語言函數(shù)可以通過返回值表示輸出結(jié)果,例如 log() 函數(shù)返回值會根據(jù)不同的輸入,返回不同的值。再比如,我們定義一個
    發(fā)表于 09-06 10:01 ?981次閱讀

    網(wǎng)絡(luò)工程師學(xué)Python-文件打開

    在Python中,可以使用open()內(nèi)置函數(shù)打開文件,以執(zhí)行一系列文件的操作。在本文中,將介紹Python中
    的頭像 發(fā)表于 04-27 09:14 ?700次閱讀

    python創(chuàng)建文件對象

    2.1. 創(chuàng)建文件對象 **open() 函數(shù)用于創(chuàng)建文件對象,基本語法格式如下:**
    的頭像 發(fā)表于 06-21 17:19 ?1641次閱讀
    python創(chuàng)建<b class='flag-5'>文件</b><b class='flag-5'>對象</b>

    python中如何保存文件

    在Python中,可以使用多種方式來保存文件。以下是一些常見的方法: 使用內(nèi)置的open()函數(shù)open()函數(shù)用于
    的頭像 發(fā)表于 11-24 09:32 ?1235次閱讀

    linuxvi無法打開寫入文件

    -l 命令來查看文件權(quán)限,通過 chmod 命令來修改權(quán)限。例如,使用 chmod +rw filename 命令將文件的讀寫權(quán)限添加給當(dāng)前用戶。 文件不存在:如果你嘗試
    的頭像 發(fā)表于 11-28 15:10 ?3412次閱讀

    嵌入式open函數(shù)的使用

    使用的一個重要函數(shù),用于打開一個文件或設(shè)備,返回一個文件描述符,開發(fā)者可以通過該
    的頭像 發(fā)表于 01-04 15:51 ?752次閱讀

    python中open函數(shù)的用法詳解

    python中open函數(shù)的用法詳解 Python中的open()函數(shù)用于打開文件。它接受
    的頭像 發(fā)表于 01-30 15:31 ?2250次閱讀

    一個進(jìn)程內(nèi)多次使用open打開同一個文件,可以嗎?

    當(dāng)一個進(jìn)程內(nèi)多次使用 open 打開同一個文件時,每次都會得到一個新的文件描述符(file descriptor)。
    的頭像 發(fā)表于 02-27 13:54 ?1418次閱讀

    鴻蒙開發(fā)文件管理:【@ohos.document (文件交互)】

    通過文件管理器選擇文件,異步返回文件URI,使用promise形式返回結(jié)果。
    的頭像 發(fā)表于 06-11 17:51 ?520次閱讀
    鴻蒙開發(fā)<b class='flag-5'>文件</b>管理:【@ohos.document (<b class='flag-5'>文件</b>交互)】