python 文件解压

Posted 岁月峥嵘走过

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 文件解压相关的知识,希望对你有一定的参考价值。

请求网络zip资源,下载后解压,并拷贝解压后的文件内容到粘贴板

from pyperclip import copy
import zipfile
from os import rename
import os
import shutil
import requests
import getpass

download_dir = os.path.join(os.environ[\'HOME\'] + os.sep, "Downloads")
# download_dir = getpass.getuser() + os.sep + \'Downloads\'
request_url = \'http://xxxx.com/a.zip\'


file_name = download_dir + os.sep + \'xxx.zip\'
unzip_finder = download_dir + os.sep + \'xxx\'


if os.path.exists(file_name):
    os.remove(file_name)


if os.path.isdir(unzip_finder):
    shutil.rmtree(unzip_finder)


# 解压
def unzip_file(zip_src,dst_dir):
    dst_dir = [dst_dir if dst_dir.endswith(os.sep) else dst_dir + os.sep][0]
    with zipfile.ZipFile(zip_src, \'r\') as fd:
        for zfile in fd.namelist():
            gbkfilename = zfile.encode(\'cp437\').decode(\'GBK\')
            fd.extract(zfile, dst_dir)
            rename(\'\'.join([dst_dir, zfile]), \'\'.join([dst_dir, gbkfilename]))

# 请求资源并解压复制内容到粘贴板
def fetch_jets():
    request = requests.get(request_url)
    if request.status_code == 200:
        with open(file_name, \'wb\') as f:
            f.write(request.content)
        unzip_file(file_name, unzip_finder)
        name1 = [unzip_finder + os.sep + f.title() for f in os.listdir(unzip_finder) if f.title().startswith(\'你懂得?\')][0]
        # name1 = [unzip_finder + os.sep + f.title() for f in os.listdir(unzip_finder) if f.title().find(\'你懂得?\') > 0][0]
        with open(name1, \'r\', encoding=\'utf-8\') as f:
            content = f.read()
            copy(content)
            print(\'Congratulations !!!\')
    else:
        print(\'网络请求出错...\')

fetch_jets()

以上是关于python 文件解压的主要内容,如果未能解决你的问题,请参考以下文章

用python解压图片并打印代码

常用python日期日志获取内容循环的代码片段

使用 Python 代码片段编写 LaTeX 文档

Xamarin Android 片段库

python 3.2版本 解压rar/zip到指定目录

python怎样压缩解压文件