吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2582|回复: 11
收起左侧

[Python 转载] 复制提取文件夹内特定格式的文件

  [复制链接]
kafei000 发表于 2021-12-5 19:28
最近写了个爬虫,保存中间数据的文件太多了,想要只复制得到的结果文件,就写了这样的一个程序,把结果文件提取复制出来
需求分析:把文件夹内所有特定格式的的文件复制提取出来。(包括子文件夹里的文件)
代码思路:当作树形结构递归遍历,文件为子节点。

功能:
①、把特定格式的文件提取出来,
②、 文件名中带有特定字符串的文件提取出来,

[Python] 纯文本查看 复制代码
import os

class copyfiles(object):

    # 创建文件夹
    def mkdirs(self, path):
        if not os.path.exists(path):
            os.makedirs(path)

    # 复制单个文件文件到新文件夹,
    def copy(self, path1, path2):
        if os.path.exists(path2):
            print(f"{path2} 文件已经存在")
            return 0
        else:
            with open(path1, 'rb') as f:
                content = f.read()
            with open(path2, 'wb') as f_copy:
                f_copy.write(content)
            print(f"{path2} 文件复制完成")

    def copys(self, path1, path2, keywords=[]):
        '''
        :功能: 复制path1文件夹下所有满足条件的文件复制到新的文件夹path2下
        :param path1: 源文件夹
        :param path2: 文件复制到的新文件夹
        :param keyword: 筛选关键词, 默认为[], 此时选择所有文件
        :return:
        '''
        self.mkdirs(path2)

        for name in os.listdir(path1):
            child_old = os.path.join(path1, name)
            child_new = os.path.join(path2, name)
            # 复制文件夹
            if os.path.isdir(child_old):
                self.mkdirs(child_new)
                self.copys(child_old, child_new, keywords)
            # 复制文件
            else:
                if len(keywords) == 0:
                    print(keywords)
                    self.copy(child_old, child_new)
                else:
                    for i in keywords:
                        if i in name:
                            self.copy(child_old, child_new)


if __name__ == '__main__':
    path_old = '.\申论'        # 要复制的文件夹
    path_new = '.\源文件\申论'    # 新文件夹
    keywords = ['html', '.text', '.json']        # 筛选依据的关键词

    A = copyfiles()
    A.copys(path_old, path_new, keywords)



免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
开始123 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

开始123 发表于 2021-12-5 19:34
这个写的真不错
dleo 发表于 2021-12-5 20:31
 楼主| kafei000 发表于 2021-12-5 20:51
OrData 发表于 2021-12-5 21:22
是啊,感觉everything筛选的确很容易实现,但复制得自己操作了。
愚无尽 发表于 2021-12-5 21:22
kafei000 发表于 2021-12-5 20:51
everything 还有这功能吗

everything的功能远不止如此
Wapj_Wolf 发表于 2021-12-6 07:34
以前还没用过everything呢,又学习到了。
biostu 发表于 2021-12-6 08:57
everything 的功能其实很强大,需要慢慢挖掘。
shinexieonline 发表于 2021-12-6 09:08
感谢楼主发布优秀作品
帅得心里烦 发表于 2021-12-6 09:50
这个写的真不错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表