管理電腦文件及文件夾
1、輸出目錄下所有文件及文件夾
(1)python操作系統接口模塊 https://docs.python.org/zh-cn/3.7/library/os.html
(2)獲取當前python程序運行路徑
import os print(os.getcwd())
print(os.path.join('xuexi python','01變量.py'))
(3)讓python自動處理路徑連接
(4)絕對路徑與相對路徑
(5)列出當前程序文件夾(及指定文件夾)下的所有文件和文件夾
import os print(os.getcwd()) print(os.path.join('xuexi python','01變量.py')) print(os.listdir()) #列出當前程序文件夾下的所有文件和文件夾(列表形式) for item in os.listdir(): #列出當前程序文件夾下的所有文件和文件夾 print(item,os.path.isdir(item)) print(os.listdir('E:\Youku Files')) #列出某個指定文件夾下的所有文件和文件夾(列表形式),英文路徑 for file in os.scandir(): print(file.name,file.path,file.is_dir()) for file in os.scandir('E:\Youku Files'): print((file.name,file.path,file.is_dir()))
2.遍歷、搜索文件及查詢文件信息
(1)遍歷文件夾
import os for dirpath, dirnames, files in os.walk('E:\Youku Files'): print(f'發現文件夾:{dirpath}') print(files) print('666good'.startswith('6')) print('good.txt'.endswith('t'))
(2)搜索、匹配文件名稱
import glob print(glob.glob('1*.py')) print(glob.glob('?1*.py')) print(glob.glob('0[1-8]*.py')) print(glob.glob('[1,0]*.py')) print(glob.glob('[!1,6]*.py')) print(glob.glob('*.txt', recursive= True)) import fnmatch print(fnmatch.fnmatch('12函數使用.py','*使用.py')) print(fnmatch.fnmatch('12函數使用.py','[0-9]?函數??.py'))
(3)查詢文件信息
import os import time import datetime for file in os.scandir(): print(file.name,file.stat(),file.stat().st_size/1024,time.ctime(file.stat().st_mtime)) file_time = file.stat().st_mtime print(datetime.datetime.fromtimestamp(file_time))
print(os.stat('01變量.py'))
import datetime normal_time = datetime.datetime.fromtimestamp(1498912896) print(normal_time,normal_time.year,normal_time.month,normal_time.day)
3、寫入和讀取文件;創建臨時文件及文件夾
(1)讀取文件
f = open('file.txt','r',encoding= 'utf-8') text = f.readlines() print(text) f.close
with open('D:\Desktop\快捷鍵.txt','r',encoding='ansi') as fi: text_fi = fi.readlines() print(text_fi)
(2)寫入文件的兩種模式(覆蓋寫 和 接着寫)
with open('file.txt','w',encoding= 'utf-8') as f: text = 'a\nb\nc\n' f.write(text) f.write('d')
with open('file.txt','a',encoding= 'utf-8') as f: f.write('\n') f.write('good')
(3)創建臨時文件和存儲數據
from tempfile import TemporaryFile f = TemporaryFile('w+') f.write("good!good!") f.seek(0) data = f.readlines() print(data) f.close
with TemporaryFile("w+") as f: f.write("6jl very good") f.seek(0) data = f.readlines() print(data)
(4)創建臨時文件夾
from tempfile import TemporaryDirectory with TemporaryDirectory() as tmp_folder: print(f'臨時文件夾已創建:{tmp_folder}')
4、批量創建、復制、移動、刪除、重命名文件及文件夾
(1)創建文件夾
import os if not os.path.exists("新文件夾"): os.mkdir('新文件夾')
import os os.makedirs('一/二')
(2)復制文件、文件夾
import shutil shutil.copy('file.txt','./新文件夾') shutil.copy('file.txt','./新文件夾/new_file.txt') shutil.copytree('一','新文件夾1')
(3)移動文件和文件夾
import shutil shutil.move('./新文件夾/file.txt','./一/二/file2.txt') shutil.move("./一/二/file2.txt",'新文件夾/') shutil.move("一",'新文件夾1/')
(4)重命名文件和文件夾
import os
os.rename('新文件夾','文件夾new') os.rename('./文件夾new/文件夾一','./文件夾new/wjj') os.rename('./文件夾new/file2.txt','./文件夾new/file_new.txt')
(5)刪除文件,刪除文件夾
import os os.remove("./文件夾new/file2.txt") import shutil shutil.rmtree('./文件夾new')
5、創建和解壓壓縮包
(1)讀取壓縮包
import zipfile with zipfile.ZipFile('xuexi.zip','r') as zipobj: for filename in zipobj.namelist(): print(filename.encode('cp437').decode('gbk'))
# 讀取壓縮包內文件信息
import zipfile with zipfile.ZipFile('xuexi.zip','r') as zipobj: for filename in zipobj.namelist(): info = zipobj.getinfo(filename) nfilename = filename.encode('cp437').decode('gbk') print(nfilename,info.file_size,info.compress_size,info)
(2)解壓壓縮包
import zipfile with zipfile.ZipFile('xuexi.zip','r') as zipobj: zipobj.extract('pyvenv.cfg','./xuexi/') zipobj.extractall(path= './xuexi')
(3)創建壓縮包
import zipfile file_list = ['01.txt','./02.txt'] with zipfile.ZipFile('newzip.zip','w') as zipobj: for file in file_list: zipobj.write(file)