电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python 解壓、復制、刪除 文件的實例代碼

瀏覽:4日期:2022-08-06 13:02:39

壓縮復制刪除文件基于python語言怎么操作呢,壓縮文件有四種格式:zip、rar、tar、tar.gz,在壓縮過程中也容易出現很多問題,今天小編通過代碼給大家詳解,具體內容如下所示:

一、python3解壓文件1.python 解壓文件代碼示例

如下代碼主要實現zip、rar、tar、tar.gz四種格式的壓縮文件的解壓

def unzip_file(src_file, dst_dir=None, unzipped_files=None, del_flag=True): ''' 根據指定的壓縮文件類型遞歸解壓所有指定類型的壓縮文件 :param src_file: 解壓的源文件路徑,可以為文件夾路徑也可以是文件路徑 :param dst_dir: 解壓后的文件存儲路徑 :param unzipped_files: 完成解壓的文件名列表 :param del_flag: 解壓完成后是否刪除原壓縮文件,默認刪除 :return: 完成解壓的文件名列表 ''' # 完成解壓的文件名列表初始為空 if unzipped_files is None: unzipped_files = [] # 指定的解壓文件類型 zip_types = [’.zip’, ’.rar’, ’.tar’, ’.gz’] def exec_decompress(zip_file, dst_dir): ''' 解壓實現的公共代碼 :param zip_file: 壓縮文件全路徑 :param dst_dir: 解壓后文件存儲路徑 :return: ''' file_suffix = os.path.splitext(zip_file)[1].lower() try: print(’Start extracting the file: %s’ % zip_file) # zip 解壓 if file_suffix == ’.zip’: # zip解壓 寫法一 with ZipFile(zip_file, mode=’r’) as zf: zf.extractall(dst_dir) # zip解壓 寫法二 # file_zip = ZipFile(zip_file, mode=’r’) # for file in file_zip.namelist(): # file_zip.extract(file, dst_dir) # file_zip.close() # rar 解壓 elif file_suffix == ’.rar’: rf = rarfile.RarFile(zip_file) rf.extractall(dst_dir) # tar、tgz(tar.gz) 解壓 elif file_suffix in [’.tar’, ’.gz’]: tf = tarfile.open(zip_file) tf.extractall(dst_dir) # 關閉文件釋放內存 tf.close() print(’Finished extracting the file: %s’ % zip_file) except Exception as e: print(e) # 解壓完成加入完成列表 unzipped_files.append(zip_file) # 根據標識執行原壓縮文件刪除 if del_flag and os.path.exists(zip_file): os.remove(zip_file) # 如果傳入的文件路徑為文件目錄,則遍歷目錄下所有文件 if os.path.isdir(src_file): # 初始化文件目錄下存在的壓縮文件集合為空 zip_files = [] # 如果傳入的目的文件路徑為空,則取解壓的原文件夾路徑 dst_dir = dst_dir if dst_dir else src_file # 遍歷目錄下所有文件 for file in os.listdir(src_file): file_path = os.path.join(src_file, file) # 如果是文件夾則繼續遞歸解壓 if os.path.isdir(file_path): dst_path = os.path.join(dst_dir, file) unzip_file(file_path, dst_path, unzipped_files) # 如果是指定類型的壓縮文件則加入到壓縮文件列表 elif os.path.isfile(file_path) and os.path.splitext(file_path)[ 1].lower() in zip_types and file_path not in unzipped_files: zip_files.append(file_path) # 遍歷壓縮文件列表,執行壓縮文件的解壓 for zip_file in zip_files: exec_decompress(zip_file, dst_dir) # 如果當前目錄存在壓縮文件則完成所有文件解壓后繼續遍歷 if zip_files: unzip_file(dst_dir, unzipped_files=unzipped_files) # 如果傳入的文件路徑是指定類型的壓縮文件則直接執行解壓 elif os.path.isfile(src_file) and os.path.splitext(src_file)[1].lower() in zip_types: dst_dir = dst_dir if dst_dir else os.path.dirname(src_file) exec_decompress(src_file, dst_dir) return unzipped_files2.python解壓常見問題解決辦法

2.1 python3 zipfile解壓文件名亂碼解決辦法

直接修改源碼,即 zipfile.py 文件:

第一處:

if flags & 0x800: # UTF-8 file names extension filename = filename.decode(’utf-8’)else: # Historical ZIP filename encoding # 注釋原代碼 # filename = filename.decode(’cp437’) # 新加一行代碼 filename = filename.decode(’gbk’)

第二處:

if zinfo.flag_bits & 0x800: # UTF-8 filename fname_str = fname.decode('utf-8')else: # 注釋原代碼 # fname_str = fname.decode('cp437') # 同樣新加一行代碼 fname_str = fname.decode(’gbk’)

2.1 rar 解壓無法找到動態庫(unrar.dll)解決辦法

報錯示例:

python 解壓、復制、刪除 文件的實例代碼

第一步 手動下載動態庫文件 unrar.dll 存在本地目錄,例如我的本地存儲路徑為:C:MySoftassistunrar.dll

鏈接: https://pan.baidu.com/s/1rqhFND9XmtD1Y8yGLEz9kA 提取碼: u2my

第二步 修改源碼 unrarlib.py 文件

if platform.system() == ’Windows’: from ctypes.wintypes import HANDLE as WIN_HANDLE HANDLE = WIN_HANDLE UNRARCALLBACK = ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_uint, ctypes.c_long, ctypes.c_long, ctypes.c_long) # 注釋原代碼 # lib_path = lib_path or find_library('unrar.dll') # 將路徑指向下載的動態庫文件存儲路徑 lib_path = r'C:MySoftassistunrar.dll' if lib_path: unrarlib = ctypes.WinDLL(lib_path)

知識點擴展:python 壓縮文件夾的代碼

def zip_ya(start_dir): start_dir = start_dir # 要壓縮的文件夾路徑 file_news = start_dir + ’.zip’ # 壓縮后文件夾的名字 z = zipfile.ZipFile(file_news, ’w’, zipfile.ZIP_DEFLATED) for dir_path, dir_names, file_names in os.walk(start_dir): f_path = dir_path.replace(start_dir, ’’) # 這一句很重要,不replace的話,就從根目錄開始復制 f_path = f_path and f_path + os.sep or ’’ # 實現當前文件夾以及包含的所有文件的壓縮 for filename in file_names: z.write(os.path.join(dir_path, filename), f_path + filename) z.close() return file_news

PS: 若遞歸掃描所有文件夾過程中有文件夾里不存在文件, 該文件夾將被忽略

總結

到此這篇關于python 解壓、復制、刪除 文件的實例代碼的文章就介紹到這了,更多相關python 解壓、復制、刪除 文件內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 北京康百特科技有限公司-分子蒸馏-短程分子蒸馏设备-实验室分子蒸馏设备 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | 家庭教育吧-在线家庭教育平台,专注青少年家庭教育 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 物和码官网,物和码,免费一物一码数字化营销SaaS平台 | 河南中专学校|职高|技校招生-河南中职中专网 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 万师讲师网-优质讲师培训师供应商,讲师认证,找讲师来万师 | 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 压力变送器-上海武锐自动化设备有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 |