用Python批量重命名文件
<p>今天,我们来整理文件夹中的文件,给某个文件夹下的所有文件重新命名。要求是给所有文件按照修改时间,按顺序在文件名前面加上编号。比如将文件 <code>资料.xlsx</code>重命名为 <code>1. 资料.xlsx</code></p><pre><code>import os
def Get_modify_time(file):
return os.path.getmtime(file) #获取文件修改时间
path='文件'#文件所在文件夹
files = #获取文件夹下的文件名,并拼接完整路径
files.sort(key=Get_modify_time) #以文件修改时间为依据升序排序
files
</code></pre>
<pre><code>['文件\\资料.xlsx',
'文件\\文档.txt',
'文件\\说明.docx',
'文件\\演示文稿 - v1.pptx',
'文件\\演示文稿.pptx']
</code></pre>
<p>以上,我们先导入 <code>os</code>模块,用于处理文件及目录等。然后定义了一个函数,用于获取文件的修改时间,以便后续通过文件修改时间来进行排序编号。然后获取文件夹下的文件名的完整路径,存入列表 <code>files</code>,并调用 <code>Get_modify_time</code>函数将列表中的元素按文件修改时间排序。不然系统会自动按字母顺序(汉字按首字的拼音字母顺序)排序。可以看到 <code>files</code>已储存 <code>文件</code>文件夹下的所有5个文件。</p>
<pre><code>seq = 1 #计数器,从1开始
for file in files:
os.rename(file, os.path.join(path, str(seq) + ". "+ file.split("\\")[-1])) #重命名文件
seq += 1
</code></pre>
<p>随后就可以批量重命名文件了。由于我们的目的是给文件加编号,从1开始,所以要先定义一个计数器 <code>seq</code>,初始值设为1,每重命名一个文件就增加1。然后遍历所有待命名的文件,使用 <code>os.rename()</code>按要求进行重命名操作。<code>os.rename()</code>有两个参数,分别代表当前的文件名和重命名后的文件名。比如 <code>os.rename("A","B")</code>就表示将名字为A的文件命名为B。<code>os.path.join()</code>用于拼接文件路径,比如如下操作,它自动将'文件'和"abc.docx"按照路径的方式拼接起来了。</p>
<pre><code>os.path.join('文件',"abc.docx")
</code></pre>
<pre><code>'文件\\abc.docx'
</code></pre>
<p>程序运行完成后,结果如下。<br />
<img src="https://roim-picx-bpc.pages.dev/rest/yHIA6lK.png" alt="" /></p>
页:
[1]