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