python with open 循环建立指定名字文件_Python基础——文件
作者丨文靜
來(lái)源丨醫(yī)數(shù)思維云課堂(ID:Datamedi)? ?
文件(file)
1、 通過(guò)python程序來(lái)對(duì)計(jì)算機(jī)中的各種文件進(jìn)行增刪改查的操作。
2、?I/O(Input/Output),文件的輸入輸出。
3、 操作文件的步驟:
(1)打開(kāi)文件
(2)對(duì)文件進(jìn)行各種操作(讀、寫(xiě)),然后保存
(3)關(guān)閉文件
4、 打開(kāi)文件:
使用open()函數(shù)來(lái)打開(kāi)一個(gè)文件,參數(shù):file是要打開(kāi)的文件的名字(路徑),首先創(chuàng)建一個(gè)變量,來(lái)保存文件的名字,然后file_name='demo.txt' open(file_name)
5、 返回值:
返回一個(gè)對(duì)象,這個(gè)對(duì)象就代表了當(dāng)前打開(kāi)的文件。
例如:
file_name='demo.txt'
file_obj=open(file_name)
print(file_obj)#證明文件存在且一打開(kāi)
6、 如果目標(biāo)文件和當(dāng)前文件在同一級(jí)目錄下,則直接使用文件名即可。
如果不在同一級(jí)目錄下,比如demo.txt,在hello文件夾中,則要file_name='hello/demo.txt'
7、 表示路徑,可以使用..來(lái)返回一級(jí)目錄
例如:
file_name='../hello/demo.txt'
8、如果目標(biāo)文件距離當(dāng)前文件比較遠(yuǎn),比如說(shuō)文件在桌面,此時(shí)可以使用絕對(duì)路徑,絕對(duì)路徑應(yīng)該從磁盤(pán)的根目錄開(kāi)始書(shū)寫(xiě),win+r可彈出搜索窗口-再輸cmd回車調(diào)出命令窗口-cd Desktop-輸入dir-粘貼路徑
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
9、讀取文件:
首先打開(kāi)桌面的文件
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
file_obj=open(file_name) print(file_obj),然后讀取文件中的內(nèi)容,當(dāng)我們獲取了文件對(duì)象以后,所有的對(duì)文件的操作都應(yīng)該通過(guò)對(duì)象來(lái)進(jìn)行。
讀取內(nèi)容,用read()方法,它會(huì)將內(nèi)容全部保存為一個(gè)字符串返回。
例如:
content=file_obj.read()
print(content)
這個(gè)程序會(huì)自動(dòng)關(guān)閉。
10、關(guān)閉文件:
調(diào)用close()方法來(lái)關(guān)閉文件
例如:
file_obj.close()
此時(shí)再輸入content=file_obj.read() print(content),就會(huì)報(bào)錯(cuò)。
11、with…as語(yǔ)句:
在with語(yǔ)句中可以直接使用file_obj來(lái)做文件操作,此時(shí)這個(gè)文件只能在with中使用,一旦with結(jié)束,則文件會(huì)自動(dòng)結(jié)束。
這個(gè)會(huì)簡(jiǎn)化一些,不用手動(dòng)關(guān)閉文件了。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name) as file_obj:
print(file_obj.read())
12、對(duì)異常信息應(yīng)用,捕獲錯(cuò)誤信息:
例如:
file_name=r'C:/Users/茶茶/Desktop/hello.txt'
try:
with open(file_name) as file_obj:
print(file_obj.read())
except FileNotFoundError:
print(f'{file_name}文件不存在~~')
13、文件的簡(jiǎn)單讀取:
調(diào)用open()來(lái)打開(kāi)一個(gè)文件,可以將文件分成兩種類型:
一種是純文本文件(使用utf-8等編碼編寫(xiě)的文件)
另一種是二進(jìn)制文件(圖片、mp3、ppt等文件)
通過(guò)read()來(lái)讀取文件中的內(nèi)容,默認(rèn)是以文本文件的形式打開(kāi)的。
通過(guò)open()默認(rèn)的編碼為None,所以處理文本文件時(shí),必須要指定文件的編碼。
中文文件要加個(gè)encoding='utf-8'。
14、如果要讀取的文件較大的話,會(huì)一次性將文件的內(nèi)容加載到內(nèi)存中,導(dǎo)致內(nèi)存泄漏,所以對(duì)于較大的文件,不要直接調(diào)用read(),read()可以接收一個(gè)size作為參數(shù),該參數(shù)用來(lái)指定要讀取的字符數(shù)量,默認(rèn)值為-1,它會(huì)讀取文件中的所有字符。
可以為size指定一個(gè)值,這樣read()會(huì)讀取指定數(shù)量的字符,每一次讀取都是從上次讀到位置開(kāi)始讀取的,如果字符的數(shù)量小于size,則會(huì)讀取剩余所有的,如果已經(jīng)讀取到了文件的最后,則會(huì)返回空串' '。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(-1)
print(content)
print(len(content))
讀取前七個(gè)字符:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(7)
print(content)
print(len(content))
繼續(xù)再讀七個(gè)字符:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(7)
content=file_obj.read(7)
print(content)
print(len(content))
15、readline()每次讀一行,readlines()會(huì)一次性將讀取到的內(nèi)容封裝到一個(gè)列表中返回。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
print(file_obj.readline())
print(file_obj.readline())
16、也可以用for循環(huán)
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
for t in file_obj:
print(t)
17、write()來(lái)向文件中寫(xiě)入內(nèi)容,如果操作的是一個(gè)文本文件的話,則write()需要傳遞一個(gè)字符串作為參數(shù),使用open()打開(kāi)文件時(shí)必須要指定打開(kāi)文件時(shí)索要做的操作(讀、寫(xiě)、追加),如果不指定操作類型,則默認(rèn)是讀取文件。
而讀取文件時(shí),是不能向文件中寫(xiě)入的,r表示只讀的,w表示是可寫(xiě)的,使用w來(lái)寫(xiě)入文件時(shí),如果文件不存在會(huì)創(chuàng)建文件,如果文件存在則會(huì)截?cái)辔募?/p>
截?cái)辔募竸h除原來(lái)文件中的所有內(nèi)容。
該方法可以分多次向文件中寫(xiě)入內(nèi)容。
例如:
file_name=r'C:/Users/茶茶Desktop/demo.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')
例如:
file_name=r'C:/Users/茶茶/Desktop/demo3.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!
')
file_obj.write('hello hello how are you!
')
file_obj.write('hello hello how are you!
')
18、a表示追加內(nèi)容,如果文件存在,則會(huì)向文件中追加內(nèi)容,r+表示既可讀也可寫(xiě),文件不存在會(huì)報(bào)錯(cuò)。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name,'a') as file_obj:
file_obj.write('hello hello how are you!
')
file_obj.write('hello hello how are you!
')
file_obj.write('hello hello how are you!
')
19、x用來(lái)新建文件,如果文件不存在則創(chuàng)建,存在則報(bào)錯(cuò)。
想要了解更多,可以點(diǎn)擊閱讀全文哦。
往期推薦
點(diǎn)擊圖片直達(dá)原文
?關(guān)注醫(yī)數(shù)思維云課堂——醫(yī)數(shù)思維云課堂(ID:Datamedi),每周四20:00準(zhǔn)時(shí)更新課程,陪60萬(wàn)醫(yī)學(xué)生共同成長(zhǎng),轉(zhuǎn)載請(qǐng)聯(lián)系我們授權(quán)。
覺(jué)得“好看”,請(qǐng)點(diǎn)這里↓↓↓
總結(jié)
以上是生活随笔為你收集整理的python with open 循环建立指定名字文件_Python基础——文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: micropython esp32驱动舵
- 下一篇: 数组中两个数的最大异或值 两数异或值一定