本系列文章配套代码获取有以下两种途径:
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/1i9F6oV1J5oZnIsOASDs0gQ?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_mini_program
脚本需求:
实现步骤:
-
创建目标文件夹:提供os.path.splitext()函数将一个文件路径拆分成文件名和文件扩展名两部分,并创建目标文件夹;
-
移动文件到指定文件夹:通过shutil.move()函数移动文件。
代码实现:
具体代码如下所示:
# os模块提供了许多与操作系统交互的功能,如文件和目录操作
import os
# shutil模块提供了许多高级文件操作功能,比如文件复制和移动
import shutil
def move_files_by_extension(source_directory):
"""
将指定目录中的所有文件根据文件后缀名移动到新的文件夹中。
参数:
source_directory (str): 源目录的路径,其中包含需要根据后缀名分类的文件。
返回:
无返回值,但会修改文件系统,将文件移动到新的目录。
"""
# 遍历指定目录
for filename in os.listdir(source_directory):
# 获取文件的完整路径
file_path = os.path.join(source_directory, filename)
# 确保是文件而不是目录
if os.path.isfile(file_path):
# 获取文件的后缀名
# splitext函数将一个文件路径拆分成两部分:文件名和文件扩展名
file_extension = os.path.splitext(filename)[1].lower()
# 如果文件没有扩展名,则设置扩展名为'no_extension'
if file_extension == "":
file_extension = "no_extension"
# 创建以文件后缀名为名称的目录
dest_directory = os.path.join(source_directory, file_extension[1:]) # 去除点号,仅保留扩展名部分
# 如果文件夹不存在,则创建
if not os.path.exists(dest_directory):
os.makedirs(dest_directory)
# 移动文件到对应的目录
shutil.move(file_path, dest_directory)
# 使用示例
source_directory = './files' # 替换为你的源目录路径
move_files_by_extension(source_directory)
本篇文章来源于微信公众号: 码农设计师