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

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

拿下 Python中的文件操作

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

CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

任何語言都離不開對文件的操作,那么Python語言是如何來操作和管理文件的。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

編碼方式

編碼方式的歷史大致為ASCII ->gb2312->unicode->utf-8,期間具體詳細信息可以百度CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

來個編碼解碼的小例子先,記住中文可以進行GBK和utf-8編碼,在GBk一個中文字符對應兩個字節,在utf-8一個中文字符對應三個字節,中文不能進行ASCII編碼。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

>>> '劉潤森'.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復制代碼

如果編碼解碼格式不一致可能會出現亂碼,encode表示編碼,decode表示解碼。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

文件操作的API

下面是Python文件操作的具體的API。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

Python的open()函數打開一個文件時,有若干個參數可用。然而,**常用的參數只有前兩個。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

注意,第一個是強制性的,其余的是可選的。如果不添加mode參數,文件將在Python中以只讀模式打開。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

encoding:可以不寫。不寫參數,默認的編碼本是操作系統默認的編碼本。windows默認gbk,linux默認utf-8,mac默認utf-8。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

代碼中用到的文件文件操作的1.txt 文件內容如下:CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

關注《Python之王》公眾號 作者:Runsen復制代碼

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

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

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

下面只介紹清除寫 w和追加寫 aCNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

案例:將關注《Python之王》公眾號寫入 test.txt 文件中CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

下面再將作者:Runsen寫入test.txt 文件中CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

運行后會發現之前寫的關注《Python之王》公眾號內容修改為作者:Runsen,因為 w模式會清除原文件內容,所以小心使用。只要使用了w,就要一次性寫完。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

追加寫 aCNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

案例:將靜夜思這首詩追加到 test.txt 文件中CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

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

句柄(handle)是一個來自編譯原理的術語,指的是一個句子中**先被規約的部分,所以帶有一個「句」字。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

句柄的作用就是定位,兩個APi還是tell和seek。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

tell返回文件對象在文件中的當前位置,seek將文件對象移動到指定的位置,傳入的參數是offset ,表示移動的偏移量。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

下面通過示例對上述函數作進一步了解,如下所示:CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

我們會進行這樣的操作:打開文件,讀寫,關閉文件。程序員經常會忘記關閉文件。上下文管理器可以在不需要文件的時候,自動關閉文件,使用with open即可。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

下面,批量讀取某文件夾下的txt文件CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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)復制代碼

CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

下面將批量讀取文件夾下的txt文件的內容,合并內容到一個新文件5.txt中,具體實現的代碼如下。CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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

其實在Window中只需要cd 至目標文件夾,即你需要將所有想要合并的txt文件添加至目標文件夾中,執行如下DOS命令 type *.txt > C:目標路徑合并后的文件名.txtCNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

練習

題目:創建文件data.txt,文件共100000行,每行存放一個1~100之間的整數,題目來源:牛客CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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()復制代碼

題目:生成100個MAC地址并寫入文件中,MAC地址前6位(16進制)為01-AF-3B,題目來源:牛客CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

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()復制代碼

CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

相關免費學習推薦:python視頻教程CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以上就是拿下 Python中的文件操作的詳細內容,更多請關注少兒編程網其它相關文章!CNl少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

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

        五月天激情图片| 看av免费毛片手机播放| 国产精品igao激情视频| 国产wwwxx| 1024av视频| 91欧美一区二区三区| 男人天堂1024| 国产亚洲综合视频| 日韩视频免费在线播放| 日本中文字幕精品—区二区| 欧美爱爱视频网站| 成人污网站在线观看| 给我免费播放片在线观看| 欧美日韩性生活片| 欧美成人乱码一二三四区免费| 九九热免费在线观看| 米仓穗香在线观看| 中文av一区二区三区| 国产曰肥老太婆无遮挡| 别急慢慢来1978如如2| 欧美做受777cos| 亚洲人成色77777| 给我免费播放片在线观看| 国产女同无遮挡互慰高潮91| 国产二区视频在线播放| 波多野结衣av一区二区全免费观看| 国产精品人人妻人人爽人人牛| 亚洲第一页在线视频| 日本超碰在线观看| 亚洲36d大奶网| 午夜两性免费视频| 成人综合视频在线| 啊啊啊一区二区| 青青青在线播放| 2022亚洲天堂| 欧美色图另类小说| 亚洲色成人一区二区三区小说| 少妇人妻在线视频| 日韩手机在线观看视频| 成年在线观看视频| 中文字幕av久久| 青娱乐国产精品视频| 久久人妻无码一区二区| 男人添女人荫蒂免费视频| 久久99中文字幕| 福利在线一区二区三区| 九九久久久久久| 我的公把我弄高潮了视频| 高清欧美精品xxxxx| 成人免费视频久久| 国产一二三四五| 青青青在线视频免费观看| 亚洲36d大奶网| 九一免费在线观看| 国产视频一区二区视频| 99久热在线精品视频| 国产l精品国产亚洲区久久| 久久6免费视频| 国产又黄又大又粗视频| 亚洲欧美自拍另类日韩| 日韩a在线播放| 丰满少妇大力进入| 大伊香蕉精品视频在线| 天天做天天爱天天高潮| 自拍偷拍一区二区三区四区| 国产精品www在线观看| 操bbb操bbb| 久久久精品视频国产| aⅴ在线免费观看| 热这里只有精品| 久久久久国产一区| 国产极品美女高潮无套久久久| 国产农村妇女精品久久| 色18美女社区| 国产一级不卡视频| 久久精品xxx| 欧美 日韩 激情| 116极品美女午夜一级| 国产中文字幕乱人伦在线观看| 小泽玛利亚视频在线观看| 国产又猛又黄的视频| 欧美成年人视频在线观看| 日韩av.com| 一区二区三区国产好的精华液| 成人在线免费观看网址| 黄色高清视频网站| www.com毛片| 天天干天天操天天干天天操| 黄色特一级视频| 无码人妻精品一区二区三区在线| 成人观看免费完整观看| 一本二本三本亚洲码| 国产精品自拍片| 久久久久亚洲av无码专区喷水| 久久精品国产sm调教网站演员| 视色视频在线观看| 免费拍拍拍网站| 女人床在线观看| 99re精彩视频| 亚洲36d大奶网| 国产精品wwwww| 欧美日韩一区二区在线免费观看| 欧美激情国内自拍| 91亚洲精品久久久蜜桃借种| 人妻无码久久一区二区三区免费| 在线视频日韩欧美| japanese在线播放| 欧美少妇在线观看| 日韩中文字幕在线不卡| 91社在线播放| 欧美另类videosbestsex日本| 香蕉精品视频在线| 国产三级国产精品国产专区50| 91色国产在线| 亚洲国产一二三精品无码| 日本a在线天堂| 国产成人亚洲精品无码h在线| 国产系列第一页| 国产精品999.| 激情图片qvod| 欧美视频免费看欧美视频| 白白操在线视频| jizzjizzxxxx| 国产又黄又猛的视频| 中文字幕人妻熟女人妻洋洋| 在线视频日韩欧美| 亚洲第一精品区| 亚洲国产精品女人| 国产日韩欧美精品在线观看| 日韩精品手机在线观看| 久久综合亚洲精品| 亚洲中文字幕无码中文字| 天天干在线影院| 5月婷婷6月丁香| 高清无码视频直接看| 久久天天东北熟女毛茸茸| 公共露出暴露狂另类av| 91小视频在线播放| 欧美婷婷精品激情| 国产成人无码一二三区视频| 97在线国产视频| 青青草国产免费| 欧美亚洲另类色图| 无码日韩人妻精品久久蜜桃| 黄色免费视频大全| wwwwxxxx日韩| 日韩欧美国产片| 亚洲色图欧美自拍| 国产精品av免费观看| 久久av综合网| 欧美韩国日本在线| 一区二区三区欧美精品| 日韩高清第一页| 奇米777四色影视在线看| 国产v片免费观看| 性欧美极品xxxx欧美一区二区| 中文av一区二区三区| 好吊色这里只有精品| www婷婷av久久久影片| 中国丰满人妻videoshd| 国产手机视频在线观看| 欧美视频在线播放一区| 91免费视频污| 又色又爽又高潮免费视频国产| 国产传媒免费观看| 国产精品50p| 激情六月丁香婷婷| 97视频在线免费| www国产无套内射com| 樱花草www在线| www.桃色.com| 亚洲精品中文字幕乱码无线| 日韩中文字幕组| www.日本xxxx| 国产91av视频在线观看| 国产三级三级看三级| 亚洲精品第三页| 特级毛片在线免费观看| 日韩人妻精品一区二区三区| 国产精品8888| 成人在线观看你懂的| 久久国产乱子伦免费精品| 久久亚洲中文字幕无码| 国产肥臀一区二区福利视频| 亚洲熟女乱色一区二区三区| 五月婷婷之综合激情| 日本肉体xxxx裸体xxx免费| 日韩在线视频在线观看| 亚洲最大综合网| 久艹在线免费观看| 四季av一区二区| 国产黄色激情视频| 国产精品无码av无码| 污免费在线观看| 日本阿v视频在线观看| 五月婷婷之综合激情| 婷婷无套内射影院| 国产一级不卡视频| 色综合色综合色综合色综合| 亚洲人成无码网站久久99热国产|