python 文件操作(三)
阿新 • • 發佈:2018-03-06
指定 讀取文件 boot 行數據 列表 open 常用 按行讀取 開始
轉自 http://www.cnblogs.com/sunyang945/p/7900927.html
#文件操作(寫入文件,讀取文件) #寫入文件 #1.打開文件(打開冰箱) fp = open(‘test.txt‘,‘w‘) print(fp,type(fp)) #2.寫入文件(把大象塞進去) fp.write(‘什麽時候你會覺得不再年輕了?‘) #3.關閉文件(關上冰箱) fp.close() #讀取文件 #1.打開文件(打開冰箱) fp = open(‘test.txt‘,‘r‘) #print(fp) #2.讀取文件(把大象拿出來) txt = fp.read() print(txt) #3.關閉文件(把冰箱門關閉) fp.close() #文件常用函數 #open() 打開或者新建一個文件 ‘‘‘ open(‘文件路徑‘,‘打開模式‘) #基本模式 w write 寫入模式 1.文件不存在則新建文件,文件已存在,打開並且清空文件 2.該模式下只能進行寫入操作 r read 讀取模式 1.文件不存在則報錯,文件已存在則打開文件,將指針指向文件的開頭 2.該模式下只能進行讀取操作 a append 追加模式 1.文件不存在則新建文件,文件已存在則打開文件,將指針指向文件結尾 2.該模式下只能進行寫入操作 x xor 異或模式1.文件已存在則報錯,文件不存在則新建文件 2.該模式下只能進行寫入操作 #擴展模式(不能單獨使用必須和基本模式一起用) + plus 增強模式 可以使得任何基本模式變成讀寫模式 b bytes 位模式 獲取數據或者寫入數據的類型為bytes類型 ‘‘‘ #增強模式 fp = open(‘wangwang.txt‘,‘w+‘) #寫入操作 fp.write(‘四處張望‘) #將指針設置為開頭位置 fp.seek(0) #讀取操作 result = fp.read() print(result) fp.close() #bytes模式 涉及到一個bytes的數據類型 content= ‘喵星人為啥不能作為警貓呢?‘ result = content.encode()#編碼操作 print(result) fp = open(‘miaomiao.txt‘,‘wb‘) fp.write(result) fp.close() fp = open(‘miaomiao.txt‘,‘rb‘) result = fp.read() print(result.decode())#解碼操作 fp.close() #read() 讀取文件內容 fp = open(‘miaomiao.txt‘,‘r‘) #讀取所有內容 #txt = fp.read() #讀取指定個數的字符 txt = fp.read(5) print(txt) fp.close() #write() 寫入文件內容 fp = open(‘miaomiao.txt‘,‘w‘) fp.write(‘kqkyhtk‘) fp.close() #readline() 一次讀取一行數據 fp = open(‘question‘,‘r‘) result = fp.readline() result = fp.readline() #讀取一行數據的前n個字符 result = fp.readline(5) print(result) fp.close() #readlines() 一次性將文件按行讀取到列表當中取 fp = open(‘question‘,‘r‘) #讀取所有行 result = fp.readlines() #根據指定的字符長度 讀取n行 result = fp.readlines(50) print(result) fp.close() #writelines() 將容器中的數據一次性寫入文件 ‘‘‘ txt = [‘一\n‘,‘二\n‘,‘三\n‘,‘四\n‘ fp = open(‘num.txt‘,‘w‘) fp.writelines(txt) fp.close() ‘‘‘ #truncate() 文件截取操作 #fp = open(‘num.txt‘,‘a‘) #這裏的長度單位不是字符而是字節 #fp.truncate(2) #fp.close() ‘‘‘ 字符:一個獨立存在的文字就是一個字符,無論什麽語言什麽符號 字節:用於存儲數據的基本單位 1TB = 1024GB 1GB = 1024MB 1MB = 1024KB 1KB = 1024B 1B = 8bytes 字符集: 基本的英文編碼(1個字節) ascii碼 -> 記錄英文和數字及部分符號的編碼 (128個) 擴展ascii碼 -> 增加了ascii碼的數量(256個) 制作特定語言的編碼(2個字節[針對漢字]) gb2312編碼 -> 存儲了5000個常用漢字 gb10800編碼-> 擴充了漢字數量 gbk編碼 -> 包含了所有漢字 big5編碼 -> 繁體中文編碼 制作世界統一編碼(3個字節[針對漢字]) utf-8 包含世界上絕大部分的文字的編碼 utf-16 包含世界上絕大部分的文字的編碼 ‘‘‘ #文件函數 ‘‘‘ #tell() 獲取文件指針的位置(字節) fp = open(‘01.txt‘,‘r‘) #輸出當前指針位置 pos1 = fp.tell() print(pos1) #讀取內容 result = fp.read() print(result) #輸出當前指針位置 pos2 = fp.tell() print(pos2) fp.close() ‘‘‘ #seek() 移動文件指針的位置 fp = open(‘01.txt‘,‘r‘) #獲取開始文件指針位置 print(fp.tell) #移動指針 fp.seek(9) #獲取開始文件指針位置 print(fp.tell()) #讀取文件 result = fp.read() print(result) fp.close()
#shutil模塊 高級文件處理模塊 import shutil #copy() 復制文件 #result = shutil.copy(‘/home/sy/下載/001‘,‘/home/sy/文檔/002‘) #print(result) #copy2() 復制文件,保留原有數據信息 #result = shutil.copy2(‘/home/sy/下載/001‘,‘/home/sy/文檔/003‘) #print(result) #copyfileobj() 將一個文件的內容拷貝到另一個文件當中 #result = shutil.copyfileobj(open(‘01.txt‘,‘r‘)),open(‘02.txt‘,‘a‘) #print(result) #copyfile() 將一個文件的內容拷貝到另一個文件當中 copyfileobj(open(,‘r‘),open(,‘w‘)) #result = shutil.copyfile(‘01.txt‘,‘02.txt‘) #print(result) #copytree() 復制整個目錄 #result = shutil.copytree(‘/home/sy/PycharmProjects/python3/11.9‘,‘/home/sy/my11.9‘) #print(result) #copymode() 拷貝權限 #result = shutil.copymode(‘/home/sy/文檔/canzhao‘,‘/home/sy/文檔/mode‘) #print(result) #copystat() 拷貝元數據 #result = shutil.copystat(‘/home/sy/文檔/002‘,‘/home/sy/文檔/stat‘) #print(result) #rmtree() 刪除整個目錄 #result = shutil.rmtree(‘/home/sy/下載/py) #move() 移動文件或者目錄 #result = shutil.move(‘/home/sy/下載/001‘,‘/home/sy/文檔/001‘) #result = shutil.move() #which() 檢測命令文件所在的文件夾 #result = shutil.which(‘reboot‘) #print(result) #disk_usage() 查看磁盤使用量 result = shutil.disk_usage(‘/‘) print(result) #make_archive() 制作歸檔文件(將指定的文件夾歸檔成一個文件) #result = shutil.make_archive(‘/home/sy/下載/guidang‘,‘zip‘,‘/home/sy/PycharmProjects‘) #print(result) #unpack_archive() 解包歸檔文件 #result = shutil.unpack_archive(‘/home/sy/下載/myguidang.zip‘,‘/home/sy/文檔‘) #print(result) #get_archive_formats() 獲取歸檔允許使用的類型 #result = shutil.get_archive_formats() #print(result) #get_unpack_formats() 獲取系統解包的文件類型(包含類型對應的後綴) #result = shutil.get_unpack_formats() #print(result) 復制代碼
壓縮與解壓 #zip模塊 import zipfile ‘‘‘ #壓縮操作 #1.創建壓縮文件 zp = zipfile.ZipFile(‘./11.6.zip‘,‘w‘,zipfile.ZIP_STORED,True) #print(zp) #2.向壓縮文件中添加內容 #zp.write(‘/home/sy/文檔/001‘,‘001‘) #zp.write(‘/home/sy/文檔/002‘,‘00-2‘) zp.write(‘./getdirsize.py‘,‘mydir/gdp.py‘) #3.關閉壓縮文件 zp.close() ‘‘‘ #解壓縮文件 #1.打開壓縮文件 zp = zipfile.ZipFile(‘./11.6.zip‘,‘r‘) print(zp) #2.解壓操作 #指定文件 #zp.extract(‘00-2‘,‘/home/sy/下載‘) #全部文件 #zp.extractall(‘./boys‘) #3.關閉文件 zp.close() #tar模塊 import tarfile ‘‘‘ #1.打開壓縮文件 tp = tarfile.open(‘./07.tar‘,‘w:bz2‘) print(tp) #2.添加內容 壓縮文件 tp.add(‘01.py‘,arcname= ‘1.py‘) tp.add(‘02.py‘,arcname= ‘2.py‘) tp.add(‘01.txt‘,arcname= ‘txt/1.txt‘) #3.關閉壓縮文件 tp.close() ‘‘‘ #解壓操作 #1.打開壓縮文件 tp = tarfile.open(‘07.tar‘,‘r‘) #2.解壓文件 #解壓所有文件 #tp.extractall(‘./girls‘) #解壓指定文件 tp.extract(‘1.py‘,‘/home/sy‘) #3.關閉壓縮文件 tp.close()
python 文件操作(三)