国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

極客小將

您現(xiàn)在的位置是:首頁 » python編程資訊

資訊內(nèi)容

拿下 Python中的文件操作

極客小將2020-12-29-
簡介Python視頻教程欄目介紹相關(guān)文件操作。任何語言都離不開對文件的操作,那么Python語言是如何來操作和管理文件的。編碼方式編碼方式的歷史大致為ASCII->gb2312->unicode->utf-8,期間具體詳細(xì)信息可以百度來個編碼解碼的小例子先,記住中文可以進(jìn)行GBK和ut
python視頻教程欄目介紹相關(guān)文件操作。

CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

任何語言都離不開對文件的操作,那么Python語言是如何來操作和管理文件的。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

編碼方式

編碼方式的歷史大致為ASCII ->gb2312->unicode->utf-8,期間具體詳細(xì)信息可以百度CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

來個編碼解碼的小例子先,記住中文可以進(jìn)行GBK和utf-8編碼,在GBk一個中文字符對應(yīng)兩個字節(jié),在utf-8一個中文字符對應(yīng)三個字節(jié),中文不能進(jìn)行ASCII編碼。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

>>> '劉潤森'.encode('GBK') b'xc1xf5xc8xf3xc9xad' >>> '劉潤森'.encode('ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) >>> 'Runsen'.encode('ascii') b'Runsen' >>> "劉潤森".encode('utf-8') b'xe5x88x98xe6xb6xa6xe6xa3xae' >>> '劉潤森'.encode('GBK').decode('GBK') '劉潤森' >>> '劉潤森'.encode('GBK').decode('utf-8') UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte復(fù)制代碼

如果編碼解碼格式不一致可能會出現(xiàn)亂碼,encode表示編碼,decode表示解碼。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

文件操作的API

下面是Python文件操作的具體的API。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

方法含義open打開read讀取write寫入close關(guān)閉readline單行讀取readlines多行讀取seek文件指針操作tell讀取當(dāng)前指針位置打開文件

Python的open()函數(shù)打開一個文件時(shí),有若干個參數(shù)可用。然而,**常用的參數(shù)只有前兩個。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

注意,第一個是強(qiáng)制性的,其余的是可選的。如果不添加mode參數(shù),文件將在Python中以只讀模式打開。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

encoding:可以不寫。不寫參數(shù),默認(rèn)的編碼本是操作系統(tǒng)默認(rèn)的編碼本。windows默認(rèn)gbk,linux默認(rèn)utf-8,mac默認(rèn)utf-8。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

f=open('test.txt',encoding='utf-8') #打開文件 data=f.read() #讀取文件 print(data) f.close() #關(guān)閉文件 復(fù)制代碼modemode含義r文本模式,讀取rb二進(jìn)制模式,讀取w文本模式,寫入wb二進(jìn)制模式,寫入a文本模式,追加ab二進(jìn)制模式,追加+可讀可寫讀取文件

代碼中用到的文件文件操作的1.txt 文件內(nèi)容如下:CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

關(guān)注《Python之王》公眾號 作者:Runsen復(fù)制代碼

readline(),使用該方法時(shí),需要指定打開文件的模式為r或者r+;CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

readlines(),讀取全部行.返回一個列表,列表中的每個元素是原文件的每一行。如果文件很大,占內(nèi)存,容易崩盤。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

# 打開文件進(jìn)行讀取 f = open("1.txt","r",encoding='utf-8') # 根據(jù)大小讀取文件內(nèi)容 print('輸出來自 read() 方法 ',f.read(2048)) # 關(guān)閉文件 f.close() # 打開文件進(jìn)行讀寫 f = open("1.txt","r+",encoding='utf-8') # 讀取第2個字和第2行行的文件內(nèi)容 print('輸出來自 readline() 方法 ',f.readline(2)) print('輸出來自 readlines() 方法 ',f.readlines(2)) # 關(guān)閉文件 f.close() # 打開文件進(jìn)行讀取和附加 f = open("1.txt","r",encoding='utf-8') # 打開文件進(jìn)行讀取和附加 print('輸出來自 readlines() 方法 ',f.readlines()) # 關(guān)閉文件 f.close() # 輸出如下 輸出來自 read() 方法 關(guān)注《Python之王》公眾號 作者:Runsen 輸出來自 readline() 方法 關(guān)注 輸出來自 readlines() 方法 ['《Python之王》公眾號 '] 輸出來自 readlines() 方法 ['關(guān)注《Python之王》公眾號 ', '作者:Runsen']復(fù)制代碼 寫入文件

下面只介紹清除寫 w和追加寫 aCNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

案例:將關(guān)注《Python之王》公眾號寫入 test.txt 文件中CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

# mode=w 沒有文件就創(chuàng)建,有就清除內(nèi)容,小心使用 with open('test.txt', 'w', encoding='utf-8') as fb: fb.write('關(guān)注《Python之王》公眾號 ') 復(fù)制代碼

下面再將作者:Runsen寫入test.txt 文件中CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

with open('test.txt', 'w', encoding='utf-8') as fb: fb.write('作者:Runsen ') 復(fù)制代碼

運(yùn)行后會發(fā)現(xiàn)之前寫的關(guān)注《Python之王》公眾號內(nèi)容修改為作者:Runsen,因?yàn)?w模式會清除原文件內(nèi)容,所以小心使用。只要使用了w,就要一次性寫完。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

追加寫 aCNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

案例:將靜夜思這首詩追加到 test.txt 文件中CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

# mode=a 追加到文件的**后 with open('test.txt', 'a', encoding='utf-8') as fb: fb.write('關(guān)注《Python之王》公眾號 ') with open('test.txt', 'a'encoding='utf-8') as fb: fb.write('作者:Runsen ') 復(fù)制代碼指針操作

事物或資源都是以文件的形式存在,比如消息、共享內(nèi)存、連接等,句柄可以理解為指向這些文件的指針。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

句柄(handle)是一個來自編譯原理的術(shù)語,指的是一個句子中**先被規(guī)約的部分,所以帶有一個「句」字。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

句柄的作用就是定位,兩個APi還是tell和seek。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

tell返回文件對象在文件中的當(dāng)前位置,seek將文件對象移動到指定的位置,傳入的參數(shù)是offset ,表示移動的偏移量。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

下面通過示例對上述函數(shù)作進(jìn)一步了解,如下所示:CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

with open('test.txt', 'rb+') as f: f.write(b'Runsen') # 文件對象位置 print(f.tell()) # 移動到文件的第四個字節(jié) f.seek(3) # 讀取一個字節(jié),文件對象向后移動一位 print(f.read(1)) print(f.tell()) # whence 為可選參數(shù),值為 0 表示從文件開頭起算(默認(rèn)值)、值為 1 表示使用當(dāng)前文件位置、值為 2 表示使用文件末尾作為參考點(diǎn) # 移動到倒數(shù)第二個字節(jié) f.seek(-2, 2) print(f.tell()) print(f.read(1)) #輸出如下 6 b's' 4 50 b' ' 復(fù)制代碼上下文管理

我們會進(jìn)行這樣的操作:打開文件,讀寫,關(guān)閉文件。程序員經(jīng)常會忘記關(guān)閉文件。上下文管理器可以在不需要文件的時(shí)候,自動關(guān)閉文件,使用with open即可。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

# with context manager with open("new.txt", "w") as f: print(f.closed) f.write("Hello World!") print(f.closed) #輸出如下 False True復(fù)制代碼如何批量讀取多個文件

下面,批量讀取某文件夾下的txt文件CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

file_list = ['1.txt', '2.txt', '3.txt','4.txt'] for path in file_list: with open(path, encoding='utf-8') as f: for line in f: print(line)復(fù)制代碼

CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

下面將批量讀取文件夾下的txt文件的內(nèi)容,合并內(nèi)容到一個新文件5.txt中,具體實(shí)現(xiàn)的代碼如下。CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

import os #獲取目標(biāo)文件夾的路徑 filedir = os.getcwd()+'\'+'\txt' #獲取當(dāng)前文件夾中的文件名稱列表 filenames = [] for i in os.listdir(filedir): if i.split(".")[-1] == 'txt': filenames.append(i) #打開當(dāng)前目錄下的5.txt文件,如果沒有則創(chuàng)建 f = open('5.txt','w') #先遍歷文件名 for filename in filenames: filepath = filedir+'\'+filename #遍歷單個文件,讀取行數(shù) for line in open(filepath,encoding='utf-8'): f.writelines(line) f.write(' ') #關(guān)閉文件 f.close()復(fù)制代碼

其實(shí)在Window中只需要cd 至目標(biāo)文件夾,即你需要將所有想要合并的txt文件添加至目標(biāo)文件夾中,執(zhí)行如下DOS命令 type *.txt > C:目標(biāo)路徑合并后的文件名.txtCNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

練習(xí)

題目:創(chuàng)建文件data.txt,文件共100000行,每行存放一個1~100之間的整數(shù),題目來源:牛客CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

import random f = open(‘data.txt’,‘w+’) for i in range(100000): f.write(str(random.randint(1,100)) + ‘ ’) f.seek(0) print(f.read()) f.close()復(fù)制代碼

題目:生成100個MAC地址并寫入文件中,MAC地址前6位(16進(jìn)制)為01-AF-3B,題目來源:??虲Nl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

import random import string def create_mac(): MAC='01-AF-3B' hex_num =string.hexdigits #0123456789abcdefABCDEF for i in range(3): n = random.sample(hex_num,2) sn = '-' + ''.join(n).upper() MAC += sn return MAC def main(): with open('mac.txt','w') as f: for i in range(100): mac = create_mac() print(mac) f.write(mac+' ') main()復(fù)制代碼

CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

以上就是拿下 Python中的文件操作的詳細(xì)內(nèi)容,更多請關(guān)注少兒編程網(wǎng)其它相關(guān)文章!CNl少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺

預(yù)約試聽課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

        成人av在线不卡| 欧美精品无码一区二区三区| 欧美亚洲国产成人| mm131午夜| 亚洲综合伊人久久| 向日葵污视频在线观看| 日韩精品一区在线视频| 中文字幕精品一区二区三区在线| 免费无码国产v片在线观看| 嫩草影院中文字幕| 国产毛片久久久久久国产毛片 | 国产 日韩 欧美在线| 国产成年人在线观看| 亚洲精品自拍网| 日韩在线不卡一区| 想看黄色一级片| 欧美一级黄色录像片| 成人短视频在线观看免费| 国产日韩欧美精品在线观看| 亚洲熟妇无码一区二区三区导航| 3d动漫一区二区三区| 久久久精品在线视频| 日韩毛片在线免费看| 一级片视频免费观看| 深夜做爰性大片蜜桃| 丰满女人性猛交| 无码粉嫩虎白一线天在线观看| 大荫蒂性生交片| 国产精品亚洲a| 久久黄色片网站| 免费在线精品视频| 又粗又黑又大的吊av| 五月天视频在线观看| 天天干天天色天天爽| 国产3p露脸普通话对白| 日韩久久久久久久久久久久| 九色在线视频观看| 国产无色aaa| 人妻少妇精品久久| 校园春色 亚洲色图| 免费成人进口网站| 免费一级特黄特色毛片久久看| 亚洲爆乳无码专区| 少妇一晚三次一区二区三区| 黄色影院一级片| 久久观看最新视频| 成人性做爰aaa片免费看不忠| 三级黄色片免费观看| 人人妻人人做人人爽| 中文字幕一区二区在线观看视频 | 日韩av中文字幕第一页| 中文字幕丰满乱码| 成人在线免费观看av| 中国女人做爰视频| 一区二区三区四区毛片| 日韩av资源在线| 无码人妻精品一区二区蜜桃网站| 国产成人黄色网址| www.日日操| 成人免费视频91| 国产美女作爱全过程免费视频| 久久无码高潮喷水| 国产欧美日韩网站| 成人一区二区免费视频| 国产精品视频一二三四区| 亚洲精品在线网址| 中文 日韩 欧美| 在线观看日本www| av噜噜在线观看| 三级av免费看| 国产又黄又爽免费视频| 久久久久xxxx| 特级毛片在线免费观看| 三级黄色片免费看| 小说区视频区图片区| 日本精品一区在线| 青娱乐精品在线| av在线网站免费观看| 欧美少妇在线观看| www.成年人视频| 免费观看国产精品视频| 国产在线青青草| 亚洲欧洲日本精品| 99热都是精品| 亚洲熟妇av日韩熟妇在线| 日韩精品―中文字幕| 国产肥臀一区二区福利视频| 国产免费黄色av| 自拍偷拍一区二区三区四区| 中文字幕一区二区在线观看视频 | 熟妇人妻无乱码中文字幕真矢织江| 亚洲国产精品久久久久爰色欲| 欧美精品一区二区三区免费播放| 免费无码av片在线观看| 三级a在线观看| 国产福利片一区二区| 日韩国产一级片| 三上悠亚在线一区二区| 午夜啪啪福利视频| 欧洲av无码放荡人妇网站| 992kp免费看片| 欧美 国产 综合| 九九九九九九九九| 日韩欧美一区二| 青青草原播放器| 99爱视频在线| 18视频在线观看娇喘| 国产精品人人妻人人爽人人牛| 中文字幕视频三区| 国产日产欧美视频| 国产女人18毛片| 天堂网在线免费观看| 91免费黄视频| 成人国产在线看| 午夜xxxxx| 成人午夜激情av| 国产中文字幕免费观看| 欧美视频国产视频| 九九视频精品在线观看| 天堂8在线天堂资源bt| 国产一区二区在线观看免费视频| 91传媒久久久| 全黄性性激高免费视频| 欧美aaa在线观看| 国产超碰在线播放| aⅴ在线免费观看| 国产成人a亚洲精v品无码| 国产一二三四区在线观看| 超碰超碰在线观看| 欧美日韩亚洲自拍| 男人亚洲天堂网| www.亚洲天堂网| 久久精品网站视频| 无码aⅴ精品一区二区三区浪潮 | 日本高清久久久| 91制片厂毛片| 手机在线看福利| 依人在线免费视频| 亚洲黄色av片| 成人在线免费观看网址| 8x8ⅹ国产精品一区二区二区| 久久精品国产99久久99久久久| 日韩成人av免费| 裸体大乳女做爰69| 日本高清视频免费在线观看| 欧美xxxxxbbbbb| 性一交一乱一伧国产女士spa| 国产精品va在线观看无码| 99国产精品白浆在线观看免费| 精品一区二区三区无码视频| 黄色三级中文字幕| 精品这里只有精品| 激情内射人妻1区2区3区 | a级片一区二区| 免费看日本毛片| 蜜桃免费在线视频| 在线成人免费av| 男女超爽视频免费播放| 久久综合伊人77777麻豆最新章节| 久久网站免费视频| 男女视频在线看| 欧美乱做爰xxxⅹ久久久| 18禁男女爽爽爽午夜网站免费| 一区二区三区 日韩| 国产精品jizz在线观看老狼| 18黄暴禁片在线观看| 久久久精品三级| 2022中文字幕| 日本va中文字幕| 日本香蕉视频在线观看| 又色又爽又高潮免费视频国产| 91精品视频国产| 黑人糟蹋人妻hd中文字幕| 午夜福利123| 天美星空大象mv在线观看视频| 日本a在线天堂| 99sesese| 日韩在线第三页| 国产二区视频在线| 天天干天天玩天天操| 91精品国产91久久久久麻豆 主演| 国产xxxxx在线观看| 青青青在线观看视频| 久热在线视频观看| 日韩毛片在线免费看| 波多野结衣av一区二区全免费观看| 天天干天天综合| 国产免费999| 久久黄色免费看| 欧美三级午夜理伦三级| 久艹在线免费观看| av一区二区三区免费观看| 日韩av影视大全| 一级片免费在线观看视频| caoporn超碰97| 美女网站免费观看视频| 北条麻妃在线视频| 色悠悠久久综合网| 亚洲性生活网站| 国产精彩免费视频|