python 批量修改栏目下面文件名称

本文介绍了一个Python脚本,该脚本可以批量修改指定路径下具有特定后缀的文件名,采用新的日期格式进行重命名。此外,还提供了一个用于创建测试文件的辅助函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import os

import re

import shutil


def renameFile(path, postfix=None):
    os.chdir(path)
    fileRegex = re.compile(r'(\d{4})-(\d{1,2})-(\d{1,2})')
    fileList = os.listdir(path)
    endFileList = []
    for filename in fileList:
        if filename.endswith('.' + postfix) and fileRegex.search(filename):
            fileSearch = fileRegex.search(filename).groups()
            rename = shutil.move(filename, fileSearch[2] + '-' + fileSearch[1] + '-' + fileSearch[0] + '.' + postfix)
            endFileList.append(rename)
    return endFileList


path = '/www/wwwpython/test/x/datatxt/'
print(renameFile(path, 'txt'))


def createFile(path):
    for x in range(100):
        file = open(path + '2018-05-' + str(x) + '.txt', 'w')
        file.write('My name is wsg {0}'.format(x))


createFile('/www/wwwpython/test/x/datatxt/')

def renameFile(path, postfix=None):
    os.chdir(path)
    fileRegex = re.compile(r'(\d{4})-(\d{1,2})-(\d{1,2}).'+postfix+'')
    fileList = os.listdir(path)
    endFileList = []
    for filename in fileList:
        search =fileRegex.search(filename)
        if  search:
            fileSearch = search.groups()
            rename = shutil.move(filename, fileSearch[2] + '-' + fileSearch[1] + '-' + fileSearch[0] + '.' + postfix)
            endFileList.append(rename)
    return endFileList

更简洁写法

    def renameFile(path, postfix=None):
        os.chdir(path)
        fileList = os.listdir('.')
        endFileList = []
        for filename in fileList:
            search =re.match(r'(\d{4})-(\d{1,2})-(\d{1,2}).'+postfix,filename)
            if  search:
                fileSearch = search.groups()
                rename = shutil.move(filename, fileSearch[2] + '-' + fileSearch[1] + '-' + fileSearch[0] + '.' + postfix)
                endFileList.append(rename)
        return endFileList
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值