python 自动化办公之批量修改文件名实操

我会详细讲解“Python 自动化办公之批量修改文件名实操”的攻略。

概述

本文主要介绍如何使用 Python 实现批量修改文件名的功能,以提升办公效率和减少人为操作带来的错误。方法主要利用了 Python 中的 os、shutil 和 re 等库,对于大量的文件,可以一次性实现重命名。

具体步骤

1. 搜寻目标文件夹下的所有文件

首先需要以 Python 脚本的方式打开目标文件夹,并找到目标文件夹下所有的文件。

import os
path = 'your/path/to/folder'
files = os.listdir(path)

这段代码中,your/path/to/folder 是你的目标文件夹路径,os.listdir() 可以获取该文件夹下的所有文件列表。

2. 生成新的文件名

接下来需要生成新的文件名。根据实际需求,可以利用 Python 的 re 库或其他字符串处理函数生成新的文件名。

import re
for old_name in files:
    new_name = re.sub(r'old_pattern', 'new_pattern', old_name)

这段代码中,old_pattern 是需要被替换的字符串,new_pattern 是新的字符串模式,re.sub() 会将文件名中所有匹配 old_pattern 的部分替换成 new_pattern。循环过程会对所有文件名进行遍历。

3. 批量修改文件名

最后一步就是使用 Python 的 os.rename() 函数来实现批量修改文件名的操作。

import shutil
for old_name in files:
    new_name = re.sub(r'old_pattern', 'new_pattern', old_name)
    shutil.move(os.path.join(path, old_name),os.path.join(path, new_name))

这段代码中,os.path.join() 可以将目录和文件名连接起来,shutil.move() 将文件从第一个路径移动到第二个路径,即实现了文件名的修改。

示例说明

示例一:批量修改文件名中的日期

如果目标文件夹下的所有文件名都包含了日期,但是日期格式不一,可能需要将它们格式化成一致的格式。

import os
import re
import shutil

path = 'your/path/to/folder'
files = os.listdir(path)

for old_name in files:
    if not old_name.endswith('.txt'):
        continue
    new_name = re.sub(r'(\d{4})[-/]?(\d{2})[-/]?(\d{2})', r'\1-\2-\3', old_name)
    new_name = re.sub(r'[-/]', '', new_name)
    shutil.move(os.path.join(path, old_name),os.path.join(path, new_name))

这段代码中,(\d{4})[-/]?(\d{2})[-/]?(\d{2}) 会匹配日期格式,再用 \1-\2-\3 将其格式化为 YYYY-MM-DD 形式。同时,还可以使用 re.sub() 函数删除分隔符。

示例二:批量修改文件名中的数字

另外一个常见的需求就是,将文件名中的数字增加或减少。比如,批量修改所有文件名后缀为数字的文件名,将其中的数字加一。

import os
import re
import shutil

path = 'your/path/to/folder'
files = os.listdir(path)

for old_name in files:
    if not re.match(r'^.+?\d+\.\w+$', old_name):
        continue
    new_name = re.sub(r'(\d+)', lambda match: str(int(match.group(1)) + 1), old_name)
    shutil.move(os.path.join(path, old_name),os.path.join(path, new_name))

在这个代码中,re.match() 会检测文件名是否符合要求,如果不符合要求,则跳过。(\d+) 可以匹配文件名中的所有数字,lambda match: 将该数字加 1 并转换成字符串,最后再将新的文件名使用 shutil.move() 函数替换旧的文件名。

以上是 Python 自动化办公之批量修改文件名的攻略,希望对你有用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 自动化办公之批量修改文件名实操 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • 如何使用 Selenium – Python 从网站上我的项目的另一个目录上传图像?

    【问题标题】:How do I upload an image from another directory of my project on web site with Selenium – Python?如何使用 Selenium – Python 从网站上我的项目的另一个目录上传图像? 【发布时间】:2023-04-02 18:09:01 【问题描述】…

    Python开发 2023年4月8日
    00
  • Python 值类型和引用类型有什么区别?

    在Python中,函数参数的传递有两种方式:值传递和引用传递。 值传递 值传递是指在函数调用时,实参将自己的值传递给形参,形参获得了实参的一个拷贝,这样函数内部对形参的任何改变都不会影响实参本身。在Python中,不可变对象(如数字、字符串、元组等)采用值传递。 下面是一个例子: def change_num(num): num += 10 return n…

    2023年2月20日
    00
  • python常用request库与lxml库操作方法整理总结

    以下是关于Python常用request库与lxml库操作方法整理总结的攻略: Python常用request库与lxml库操作方法整理总结 在Python中,request库和lxml库是常用的网络爬虫库。以下是Python常用request库与lxml库操作方法整理总结的攻略。 request库的使用 使用request库发送HTTP请求时,需要使用ge…

    python 2023年5月14日
    00
  • 暂停/恢复嵌入式 python 解释器

    【问题标题】:Pause/Resume embedded python interpreter暂停/恢复嵌入式 python 解释器 【发布时间】:2023-04-05 21:56:01 【问题描述】: 是否有可能在我需要的地方暂停/恢复嵌入式 python 解释器的工作?例如: C++伪代码部分: main() { script = “python_scr…

    Python开发 2023年4月6日
    00
  • Python中的time模块与datetime模块用法总结

    下面是关于“Python中的time模块与datetime模块用法总结”的完整攻略。 time模块的用法 时间戳(timestamp) 时间戳代表从1970年1月1日(UTC/GMT的午夜)开始计算的秒数。Python中使用time.time()生成当前时间的时间戳。 import time timestamp = time.time() print(tim…

    python 2023年6月2日
    00
  • python 正则表达式 概述及常用字符

    下面我将详细讲解Python正则表达式的概述及常用字符,以及两个具体的示例说明。 Python正则表达式概述 正则表达式(Regular Expression)是一种高效的文本处理工具,常用于文本匹配、提取、替换等操作。Python通过内置的re模块支持正则表达式操作。在正则表达式中,由特定字符和符号组成的匹配规则,被称为正则表达式的模式。 常用字符 普通字…

    python 2023年6月3日
    00
  • python os.listdir按文件存取时间顺序列出目录的实例

    下面就来详细讲解一下”Python os.listdir按文件存取时间顺序列出目录的实例”的攻略。 什么是os.listdir? os.listdir() 是 Python 中的一个函数,可以列出指定目录中的所有文件和子目录列表。返回值是一个列表,其中包括目录中的所有项目。 这些项目包括子目录、文件和隐藏文件等。 如何按文件存取时间顺序列出目录中的所有项目?…

    python 2023年6月2日
    00
  • python中的反斜杠问题深入讲解

    下面就给出一份 Python 中的反斜杠问题深入讲解攻略。 什么是反斜杠? 在计算机编程中,反斜杠(\)是一个特殊字符,通常用于转义(escape)被视为普通字符的字符。我们可以在字符串(string)中使用反斜杠来表示非打印字符、一些保留字符或其他特殊意义字符,这就是转义(escape)序列。 例如,我们可以使用反斜杠字符来在字符串中插入单引号或双引号,或…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部