python 提取文件名示例

代码示例

"""
参数文件:	
URL and URLs are required parameters, but only one of them can be filled in.
satrt、end、re_str is an optional parameter.
start and end Is a pair and must be of type str, Play the role of cutting strings.
re_str Represents a regular expression, Extract the data you need.
"""
url = r"C:\Users\n\Desktop\桌面文件"
urls = None
start = None  # "1"
end = None
re_str = ".+\..+"
"""
逻辑处理文件
"""
from get_files import constants
import os
import re

class Get_file(object):
    def Get_file(self, url):
        file_list = os.listdir(url)
        return file_list

    def Get_Sub_File(self, urls):
        for root, dirs, files in os.walk(urls, topdown=False):
            pass
        file_list = dirs + files
        return file_list


class Handle_Result(object):
    def str_split(self, datas, start, end):
        for data in datas:
            try:
                data = data[int(start), int(end)]
            except Exception as e:
                return "字符串切割参数有问题"
            with open(r"./result.txt", "a") as f:
                f.write(data + "\n")

    def str_re(self, datas, re_str):
        for data in datas:
            try:
                result_data = re.match(r"%s" % re_str, data)
            except Exception as e:
                return "正则表达式参数有问题"

            if result_data is None:
                continue
            else:
                result_data = result_data.group()
                with open(r"./result.txt", "a") as f:
                    f.write(result_data + "\n")

    def str_stand(self, datas):
        for data in datas:
            with open(r"./result.txt", "a") as f:
                f.write(data + "\n")


class Run(Get_file, Handle_Result):
    def __init__(self, url, urls, start, end, re_str):
        self.url = url
        self.urls = urls
        self.start = start
        self.end = end
        self.re_str = re_str

    def run(self):
        # 1.判断路径参数
        # 2.业务处理
        if all([self.url, self.urls]):
            return "url和urls只能填写一个,另一个则为None"

        if self.url:
            try:
                datas = self.Get_file(self.url)
            except Exception as e:
                return "文件路径有问题"

        if self.urls:
            try:
                datas = self.Get_Sub_File(self.urls)
            except Exception as e:
                return "文件路径有问题"

        if self.start is None and self.end is None and self.re_str is None:
            self.str_stand(datas)

        if all([self.start, self.end]):
            self.str_split(datas, self.start, self.end)

        if self.re_str:
            self.str_re(datas, self.re_str)


if __name__ == "__main__":
    Start = Run(constants.url, constants.urls, constants.start, constants.end, constants.re_str)
    Start.run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值