1、文件操做ide
文件的編碼格式:
ASCII與UNICODE:
計算機有256個ASCII字符(8個0/1的排列組合方式一共有256種, 2**8)
UTF-8是UNICODE的一種編碼格式,計算機中使用1~6個字節來表示一個UTF-9字符,涵蓋了地球上幾乎全部地區的文字,漢字使用3個字節表示編碼
open(file, mode = 'r', buffering = -1 , encoding=None, errors = None, newline = None, closefd = True,opener = None)spa
八個參數意義:指針
通常只使用前兩個參數。code
文件內容讀取:orm
filename = 'E:/a.txt' try: f = open(filename) except OSError: print('打開文件失敗') else: try: content = f.read() print(content) except OSError: print('文件讀取失敗') finally: f.close()
注意:blog
在編寫代碼時,最好是open以後當即編寫文件關閉方法,即close(),以避免忘記關閉文件,形成系統資源損耗,影響後續對其餘文件的訪問。utf-8
在讀取文件時,read方法將一次性讀取文件全部內容,讀取文件的指針將會從開頭一直移動到末尾。資源
在第一次read讀取以後,再次調用read()方法,將不可以獲取到內容,由於此時文件指針移動到了文件末尾。rem
簡單代碼:
with open('E:/a.txt', 'r') as f: content = f.read() print(content)
讀取文件並複製(w——寫入(不存在則建立,存在則覆蓋)):
filename = 'E:/a.txt' with open(filename, 'r', encoding='utf-8') as f: lines = f.readlines() print(lines) copy_f_name = 'E:/copy_a.txt' with open(copy_f_name, 'w', encoding='utf-8') as copy_f: copy_f.writelines(lines) print('{}成功複製到{}'.format(filename, copy_f_name)) 結果: ['hellohellohellohello'] E:/a.txt成功複製到E:/copy_a.txt
二進制文件讀寫:
二進制文件複製(wb——二進制文件寫入(不存在則建立,存在則覆蓋)):
filename = 'E:/頭像.jpg' with open(filename,'rb') as f: b = f.read() copy_f_name = 'E:/頭像_Copy.jpg' with open(copy_f_name,'wb') as copy_f: copy_f.write(b) print('二進制文件複製成功!')
2、OS模塊——系統目錄與文件的管理:
import os f_name = 'E:/a.txt' copy_f_name = 'E:/a_copy.txt' with open(f_name, 'r') as f: b = f.read() with open(copy_f_name, 'w') as copy_f: copy_f.write(b) # 判斷是否存在,不然文件重命名 try: os.rename(copy_f_name, 'E:/b.txt') except OSError: os.remove('E:/b.txt') # 輸出當前目錄及父目錄 print(os.listdir(os.curdir)) print(os.listdir(os.pardir)) # 判斷路徑是否存在,不然刪除路徑 try: os.mkdir('E:/filesdir') except OSError: os.rmdir('E:/filesdir') for i in os.walk('E:/桌面'): print(i)
結果:
3、os.path模塊
示例:
import os.path from datetime import datetime f_name = '搶火車票.py' all_name = r'C:\Users\Jery\PycharmProjects\CollectImages\搶火車票.py' # 基礎名部分 basename = os.path.basename(all_name) print(basename) # 目錄部分 dirname = os.path.dirname(all_name) print(all_name) # 絕對路徑 print(os.path.abspath(f_name)) # 文件大小 print(os.path.getsize(f_name)) # 最近訪問時間 atime = datetime.fromtimestamp(os.path.getatime(f_name)) print(atime) # 最近修改時間 mtime = datetime.fromtimestamp(os.path.getmtime(f_name)) print(mtime) # 建立時間 ctime = datetime.fromtimestamp(os.path.getctime(f_name)) print(ctime) print(os.path.isdir(dirname)) print(os.path.isfile(f_name)) print(os.path.exists(f_name)) 結果: 搶火車票.py C:\Users\Jery\PycharmProjects\CollectImages\搶火車票.py C:\Users\Jery\PycharmProjects\CollectImages\搶火車票.py 5673 2019-03-27 11:19:39.251669 2019-03-27 11:19:39.251669 2019-03-15 19:48:48.315313 True True True Process finished with exit code 0