美文网首页
显示 .tar.gz 压缩文件的所有文件路径

显示 .tar.gz 压缩文件的所有文件路径

作者: Canon_2020 | 来源:发表于2020-04-20 09:39 被阅读0次

获取当前目录下的所有文件路径

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-04-15 09:00:00
# @Author  : Canon
# @Link    : https://www.python.org
# @Version : 3.6.1

import re
import os
import json


def read_dir(path, res, clear_pre=""):
    paths = os.listdir(path)
    for i, item in enumerate(paths):
        sub_path = os.path.join(path, item)
        if os.path.isdir(sub_path):
            res[item] = {}
            read_dir(sub_path, res[item], clear_pre)
        else:
            # res[item] = sub_path
            res[item] = re.sub(clear_pre, "", sub_path)


result = {}
read_dir("..", result, "\\.\\.\\\\")
json_res = json.dumps(result, indent=2)
print(json_res)

获取 .tar.gz 压缩文件的所有文件路径

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-04-15 09:00:00
# @Author  : Canon
# @Link    : https://www.python.org
# @Version : 3.6.1

import re
import json
import tarfile

# 读取压缩文件
tar = tarfile.open("PaymentGateway_20180301.tar.gz", 'r:gz', encoding="utf-8")
# 获取压缩文件中的所有文件路径
for tar_info in tar.getmembers():
    print(tar_info.name)


def get_sub_dir(sub_list=None, sub_dir=""):
    # 获取路径下的所有文件和文件夹名称
    if sub_list is None:
        sub_list = []
    val_list = []
    if sub_dir:
        for path_val in sub_list:
            condi_val = sub_dir + "/"
            dir_num = len(sub_dir.split("/"))
            if condi_val in path_val:
                val = sub_dir + "/" + path_val.split("/")[dir_num]
                if val not in val_list:
                    val_list.append(val)
        return val_list
    else:
        return None


def get_proj_struct(path_list, path_dir, result):
    # 获取路径下的所有文件和文件夹名称
    path_file = get_sub_dir(path_list, path_dir)
    str_list = str(path_list)
    # 递归获取生成项目结构的字典
    for item in path_file:
        item_file = item.split("/")[-1]
        if item + "/" in str_list:
            result[item_file] = {}
            get_proj_struct(path_list, item, result[item_file])
        else:
            result[item_file] = item

# print(get_sub_dir(tar.getnames(), "PaymentGateway"))


res_dir = {}
get_proj_struct(tar.getnames(), "PaymentGateway", res_dir)
res_dir = json.dumps(res_dir, indent=2)
# print(res_dir)

相关文章

  • 显示 .tar.gz 压缩文件的所有文件路径

    获取当前目录下的所有文件路径 获取 .tar.gz 压缩文件的所有文件路径

  • kali linux 解压缩

    1. 压缩文件 tar 压缩文件命令 tar 压缩文件后缀名.tar.gz 或 .tgz 或 .tar 这个仅打包...

  • linux 下解压 压缩命令

    1.压缩命令: 命令格式:tar -zcvf 压缩文件名.tar.gz 被压缩文件名 2.解压缩命令: ...

  • Fedora 26 安装 IntelliJ Idea

    下载 官网下载 tar.gz 安装包。cd 进入 tar.gz 包所在文件夹,提取压缩文件 安装 cd 进入解压后...

  • Android assets内压缩文件解压,解压到缓存示例

    1.assets内压缩文件解压AssetsZipUtils,包含一个获取文件夹下所有文件路径的方法,方便获取文件使...

  • 使用R优雅的处理压缩文件

    本节介绍在R中如何生成zip,tar.gz等格式的压缩文件,并批量读取压缩文件,废话不多说直接开干 安装并加载R包...

  • linux常见命令

    显示当前路径下所有文件 以长显示模式查看当前路径下所有文件(包括隐藏文件) 查看file文件的行数,字符数 查看当...

  • tar压缩解压缩

    参考文章1参考文章2 压缩 tar zcvf 文件名.tar.gz 待压缩文件名tar -cvf **.tar *...

  • MAC终端的简单常用命令

    cd 路径 切换当前工作路径 pwd 显示终端的工作路径 ls list,显示当前路径下的所有文件以及文件夹 ls...

  • 命令行小记(1)

    ls用法 输入ls显示当前目录下的所有文件和路径,直接输入ls ls某个文件列表可以显示该目录下的所有文件和路径l...

网友评论

      本文标题:显示 .tar.gz 压缩文件的所有文件路径

      本文链接:https://www.haomeiwen.com/subject/qrqtwctx.html