Python 初学者练习:重命名文件

在本教程中,你将学习如何在 Python 中重命名文件和文件夹。

在 Python 中重命名文件

可以使用 os 模块中的 rename()方法重命名 Python 中的文件。该模块提供与操作系统交互的功能。

语法格式:

os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

src:必须重命名的文件的路径。

dst:新重命名文件的目标路径。

src_dir_fd:(可选)源文件目录。

dst_dir_fd:(可选)目标文件目录。、

检查文件是否存在后重命名文件,当目标文件已存在时,该 rename()方法将引发 FileExistsError 或 OSError。可以通过 try-except 或者在重命名文件之前使用 isfile('path') 函数检测目标文件是否已存在。

import os
old_name=r"C:\temp\abc.txt"
new_name=r"C:\temp\123.txt"
if os.path.isfile(new_name):
    print("文件已存在!")
else:
    os.rename(old_name, new_name)
import os
old_name=r"C:\temp\abc.txt"
new_name=r"C:\temp\123.txt"
try:
    os.rename(old_name,new_name)
except FileExistsError:
    print("文件已存在!")
    print("删除已存在的文件!")
    os.remove(new_name)
    os.rename(old_name, new_name)
    print('文件重命名成功!')

在 Python 中重命名多个文件

有时我们需要重命名文件夹中的所有文件。可以按照以下步骤重命名文件夹中的多个文件。os.listdir()获取目录中的文件列表。使用循环访问每个文件并重命名。

import os
folder=r"C:\temp\\"
count=1
for file_name in os.listdir(folder):
    # 获取文件名
    old=folder+file_name
    # 新文件名
    new=folder+"file_"+str(count)+".txt"
    os.rename(old,new)
    count+=1
print('所有文件重命名完成!')
res=os.listdir(folder)
print(res)

批量重命名文件夹中的部分文件

上面的示例,将文件夹中的所有文件及文件夹进行重命名。有时我们可能只需要重命名部分文件,而不是所有文件。

import os
from datetime import datetime
import random
folder=r"C:\temp\\"
files=['file_2.txt','file_4.txt']
for file in os.listdir(folder):
    if file in files:
        old=os.path.join(folder, file)
        time=datetime.today().strftime('%Y-%d-%b-')
        file1=time+str(random.randint(1000,9999))+'.txt'
        new=os.path.join(folder,file1)
        os.rename(old,new)
res = os.listdir(folder)
print(res)

以上示例对指定的多个文件进行重命名,使用日期加随机数作为新文件名。

重命名文件的扩展名

import os
folder=r"C:\temp\\"
files=os.listdir(folder)
for file_name in files:
    old=os.path.join(folder, file_name)
    new=old.replace('.txt','.pdf')
    os.rename(old,new)

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!