我会详细讲解“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技术站