# -*- coding:utf-8 -*-
# @FileName :SortBySuffix.py
# @Time :2024/11/1 15:13
# @Author :liyiwei
# Python脚本按扩展名在目录中对文件进行排序
import os
from shutil import move
def sort_files(directory_path):
# 遍历指定目录下的所有文件和文件夹
for filename in os.listdir(directory_path):
# 检查当前元素是否为文件
if os.path.isfile(os.path.join(directory_path, filename)):
# 分割文件名和扩展名,获取扩展名
file_extension = filename.split('.')[-1]
# 创建以扩展名命名的目录,如果目录不存在的话
destination_directory = os.path.join(directory_path, file_extension)
if not os.path.exists(destination_directory):
os.makedirs(destination_directory)
# 将文件移动到以扩展名命名的目录中
move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename))
def main():
# 设置你想要排序的目录路径
directory_to_sort = 'D:\\virtualC\\图片素材'
# 调用sort_files函数进行文件排序
sort_files(directory_to_sort)
print("文件排序完成。")
if __name__ == "__main__":
main()
-
import os
:导入os
模块,这是Python的标准库之一,提供了许多与操作系统交互的功能,如文件和目录操作。
-
from shutil import move
:从shutil
模块中导入move
函数。shutil
是Python的标准库,提供了许多文件操作的高级函数。
-
def sort_files(directory_path):
:定义一个名为sort_files
的函数,它接受一个参数directory_path
,表示需要排序文件的目录路径。
-
for filename in os.listdir(directory_path):
:使用os.listdir()
函数遍历directory_path
目录下的所有文件和子目录。
-
if os.path.isfile(os.path.join(directory_path, filename)):
:通过os.path.isfile()
函数检查directory_path
目录下的filename
是否是一个文件。
-
file_extension = filename.split('.')[-1]
:通过.split('.')
方法分割文件名和扩展名,并获取扩展名。.split('.')
将文件名按照点(.
)分割成列表,[-1]
索引获取列表的最后一个元素,即扩展名。
-
destination_directory = os.path.join(directory_path, file_extension)
:创建一个新的目录路径,这个路径是以文件扩展名命名的新目录。
-
if not os.path.exists(destination_directory):
:检查以扩展名命名的新目录是否存在。
-
os.makedirs(destination_directory)
:如果新目录不存在,则创建这个目录。os.makedirs()
函数创建一个目录,包括创建其所有父目录。
-
move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename))
:将文件从原来的位置移动到以扩展名命名的新目录中。
-
def main():
:定义一个名为main
的函数。
扫描二维码关注公众号,回复:
17480740 查看本文章
-
directory_to_sort = 'D:\\virtualC\\图片素材'
:设置你想要排序的目录路径。在Windows系统中,使用双反斜杠\\
来表示路径。
-
sort_files(directory_to_sort)
:调用sort_files
函数,并传入directory_to_sort
作为参数。
-
print("文件排序完成。")
:执行完成后,输出提示信息“文件排序完成。”。
-
if __name__ == "__main__":
:这是Python中常见的模式,如果这个脚本是作为主程序运行的,那么就执行main()
函数。