文档章节

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

marjey
 marjey
发布于 2017/04/08 16:31
字数 342
阅读 26
收藏 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 处理 Nginx 日志

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

有什么
07/03
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
VIM编辑器支持Python开发环境(Vim+Ctags+Taglist)

在Linux下用VI编辑器进行Python开发,有必要对VI编辑器进行一些配置,使其具备以下特性: 1、加强的 Python 语法高亮显示; 2、对脚本、项目生成 ctag 序列; 3、在 vim 中显示 ctag 序列列表...

庄小寒
2014/02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS 最强鼠标改键软件:BetterAndBetter

官网: http://www.better365.cn 话不多说,先上你们最喜欢的软件界面截图。 通用: 触摸板: 鼠标: 键盘: 情景模式: 文本跳窗(自动跳窗): 四角触发: 工具箱: 脚本: 关于: 说下我目...

故国有明
40分钟前
16
0
Hbase Schema 模型设计注意事项及示例

一、Hbase 数据模型概述 HBase的数据模型也是由表组成,每一张表里也有数据行和列,但是在HBase数据库中的行和列又和关系型数据库的稍有不同。 表(Table): HBase会将数据组织成一张表,表名必...

PeakFang-BOK
今天
6
0
Blockathon(2018)上海竞赛项目成果今天揭晓

开幕式现场 10月19日,Blockathon(2018)上海在黄浦区P2联合创业办公社举行,本次活动由50名区块链开发者组成9支参赛队伍,来自国内外优秀区块链开发团队的20名技术专家担任导师及裁判。9支队...

HiBlock
今天
6
0
微信小程序开发系列六:微信框架API的调用

微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发...

JerryWang_SAP
今天
12
0
5 个用 Python 编写 web 爬虫的方法

大家在读爬虫系列的帖子时常常问我怎样写出不阻塞的爬虫,这很难,但可行。通过实现一些小策略可以让你的网页爬虫活得更久。那么今天我就将和大家讨论这方面的话题。 我刚整理了一套2018最新...

糖宝lsh
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部