文档章节

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

marjey
 marjey
发布于 2017/04/08 16:31
字数 342
阅读 28
收藏 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)

 

© 著作权归作者所有

共有 人打赏支持
上一篇: jvm初体验
下一篇: 安装hadoop
marjey
粉丝 3
博文 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
VIM编辑器支持Python开发环境(Vim+Ctags+Taglist)

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

庄小寒
2014/02/26
0
0
每天更新Python之在工作中的应用

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

Python火火火
2017/04/30
0
0
有轻功:用3行代码让Python数据处理脚本获得4倍提速

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

爱喵的程序员
07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机系统要素 C5

本章值得一提的是组织计算机的结构。Hack 的指令和数据是分开存储的,因此它的 CPU 有两个 input: IN inM[16], // M value input (M = contents of RAM[A]) instruction[16],...

lionets
14分钟前
0
0
SpringSecurity404需要注意的地方

在使用@RequestMapping的时候路径的值如果写为("auth"),虽然用的时候前面加不加"/"没有区别,但是在配置了SpringSecurity的http.authorizeRequests().antMatchers()时就必须要注意了! 🌰1...

百萬馬力
17分钟前
0
0
10分钟读懂阿里巴巴高级专家在Flutter Live2018的分享

作者:闲鱼技术-宗心 12月4日,google flutter团队宣布第一个flutter正式版本发布。次日,Flutter Live Beijing 会议上,google flutter团队邀请了在这一技术方案中重要的合作伙伴闲鱼团队分...

阿里云官方博客
17分钟前
1
0
RxJava window操作符

原文:https://github.com/Froussios/Intro-To-RxJava/blob/master/Part%204%20-%20Concurrency/3.%20Sequences%20of%20coincidence.md Sequences of coincidence Rx试图避免管道(pipeline)外......

woshixin
24分钟前
1
0
05.Beetl标签函数以及定界符、占位符介绍---《Beetl视频课程》

本期视频实现了博客的详情页面; 内容简介:使用了标签函数layout完成详情功能 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK #标签函数 layo...

Gavin-King
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部