文档章节

python 3.6 脚本 : 获取指定文件夹下面的所有文件

marjey
 marjey
发布于 2017/04/08 16:31
字数 342
阅读 21
收藏 1
#!/usr/bin/python3
# -*- coding:utf-8 -*-
from pathlib import Path

"""获得所有子文件夹下文件路径的工厂方法"""


class PathsFactory:
    """初始化方法"""
    _file_paths = []

    def __init__(self, parent_path):
        self._parent_path = parent_path

    """获得父节点"""

    def get_parent_path(self):
        return self._parent_path

    """静态方法:看输入路径是否是一个目录"""

    @staticmethod
    def isdir(path):
        p = Path(path)
        return p.is_dir()

    """外部接口方法。如果有文件,返回文件集合,没有的话返回False"""

    def get_file_paths(self):
        if self.isdir(self._parent_path):
            return self._get_all_file_paths(self._parent_path)
        else:
            return []

    """内部方法,用于获取所有路径"""

    def _get_all_file_paths(self, parent_dir_path):
        temp_paths = []
        try:
            temp_paths = self._get_all_child_paths(parent_dir_path)
        except PermissionError as e:
            print(e)
        except FileNotFoundError as e:
            print(e)
        for temp_path in temp_paths:
            if self.isdir(temp_path):
                self._get_all_file_paths(temp_path)
            else:
                self._file_paths.append(Path(temp_path))
        return self._file_paths

    """通过传入父文件路径,获得所有子文件,包括文件夹路径名"""

    @staticmethod
    def _get_all_child_paths(parent_dir_path):
        child_paths = []
        parent_path = Path(parent_dir_path)
        child_path_iter = parent_path.iterdir()
        for child_path in child_path_iter:
            child_paths.append(child_path)
        return child_paths


pa = PathsFactory("F:")
file_path = pa.get_file_paths()

捎带上一个解压文件夹里面的所有。zip文件

import zipfile
import re
from demo import PathsFactory

path = 'F:\大数据\\200套后台响应式模板【kk梦空间】'
path_factory = PathsFactory(path)
file_paths = path_factory.get_file_paths()


def un_zip_file(str_file_name):
    filename = str_file_name
    filedir = str_file_name.replace('.zip', '')  # 解压后放入的目录
    r = zipfile.is_zipfile(filename)
    if r:
        fz = zipfile.ZipFile(filename, 'r')
        for file in fz.namelist():
            fz.extract(file, filedir)


for file_path in file_paths:
    pattern = re.compile('.*\.zip')
    str_file_name = str(file_path)
    match = pattern.match(str_file_name)
    if match is not None:
        try:
            un_zip_file(str_file_name)
        except Exception as e:
            print(e)

 

© 著作权归作者所有

共有 人打赏支持
marjey
粉丝 2
博文 173
码字总数 139219
作品 0
昆明
Sublime Text 3 配置python交互运行环境的快捷键

使用Sublime Text 3能以轻量级的环境写python脚本,运行python代码。为了更加方便地调用python脚本,通过在Sublime Text 3中绑定快捷键的方式,实现一键调用python交互运行环境,操作方式如下...

雪饼
06/07
0
0
Python开发环境配置 Vim + Ctags+ TagList

在 Linux 下对 vim 进行一些配置,使之支持如下特性: 1. 加强的 Python 语法高亮显示; 2. 对脚本、项目生成 ctag 序列; 3. 在 vim 中显示 ctag 序列列表; 4. Python 函数、类的自动补全;...

AlphaJay
2012/08/03
0
0
有轻功:用3行代码让Python数据处理脚本获得4倍提速

Python是一门非常适合处理数据和自动化完成重复性工作的编程语言,我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Python就非常适合完成这项工作,比如需要重新调整几十万...

爱喵的程序员
07/26
0
0
【临实战】使用 Python 处理 Nginx 日志

有什么 要做什么 怎么做 开始 一. 使用 pssh 工具在 14 台机器执行 grep 命令获取包含某特征的日志 结果: 红色执行失败的的那两台机器未包含符合我们筛选条件的日志 二. 将 14 份日志作为标...

有什么
07/03
0
0
每天更新Python之在工作中的应用

  记住代码都是别人的哪都是,那不是你的,别直接自己运行真把他弄懂   例1:文件批量处理   对文件进行批量重命名,将文件夹中所有的文件名的”scroll1”替换为”scroll00”。   文...

Python火火火
2017/04/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day58-20180816-流利阅读笔记-待学习

苹果市值破万亿,iPhone 会涨价吗? Lala 2018-08-16 1.今日导读 苹果教父乔布斯曾经说过:“活着就是为了改变世界。”虽然他在 56 岁时就遗憾离世,但他极具创新和变革的精神早已深埋进苹果...

aibinxiao
27分钟前
4
0
[雪峰磁针石博客]python3快速入门教程1 turtle绘图-2函数

菲波那契序列: >>> # Fibonacci series:... # the sum of two elements defines the next... a, b = 0, 1>>> while b < 10:... print(b)... a, b = b, a+b...112......

python测试开发人工智能安全
今天
0
0
java环境变量配置最正确的方式

原贴:https://blog.csdn.net/qq_40007997/article/details/79784711,十分详细,亲测有效

kitty1116
今天
0
0
49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
2
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部