Python 获取当前目录下所有需要文件

文章介绍了如何使用Python的os和shutil模块来遍历目录并复制或移动TXT文件到目标文件夹。通过示例代码展示了复制和移动功能的实现,以及具体的操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、任务目标

二、复制文件代码实现

三、实现效果

四、移动文件代码实现


Python想获取当前目录下所有目录的所需文件复制或移动到另一个文件夹下面 ,需要使用到 os.work() 方法遍历所有文件。

一、任务目标

将test1文件下所有目录中 .TXT 文件拷贝到 test2 文件夹下。

一级目录

 二级目录

三级目录

 

 然后需要将目录下所有 .TXT 文件复制或移动到一个新的文件夹下面。

二、复制文件代码实现

import os
import shutil

def mycopyfile(srcfile, dstpath):  # 复制函数
    if not os.path.isfile(srcfile):
        print("%s not exist!" % (srcfile))
    else:
        fpath, fname = os.path.split(srcfile)  # 分离文件名和路径
        if not os.path.exists(dstpath):
            os.makedirs(dstpath)  # 创建路径
        shutil.copy(srcfile, dstpath + fname)  # 复制文件
        print("copy %s -> %s" % (srcfile, dstpath + fname))


src_dir = r"E:/data/test1"    # 源文件路径
dst_dir = r"E:/data/test2/"  # 目的路径记得加斜杠
for root,dirs,files in os.walk(src_dir):
    for file in files:
        print(file)
        # 使用join函数将文件名称和文件所在根目录连接起来
        if file.endswith('TXT'):
            mycopyfile(os.path.join(root, file),dst_dir)

三、实现效果

C:\ProgramData\Anaconda3\envs\pytorch-cpu\python.exe F:/Study/move_test.py
1.TXT
copy E:/data/test1\1.TXT -> E:/data/test2/1.TXT
3.TXT
copy E:/data/test1\1\3.TXT -> E:/data/test2/3.TXT
4.TXT
copy E:/data/test1\2\4.TXT -> E:/data/test2/4.TXT
2.TXT
copy E:/data/test1\2\2\2.TXT -> E:/data/test2/2.TXT

Process finished with exit code 0

 然后打开目的文件夹,发现所有 .TXT 文件均已拷贝到目的文件夹下

四、移动文件代码实现

若想移动目录下的内容,只需将 shutil.copy() 替换为 shutil.move() 

import os
import shutil

def mymovefile(srcfile, dstpath):  # 移动函数
    if not os.path.isfile(srcfile):
        print("%s not exist!" % (srcfile))
    else:
        fpath, fname = os.path.split(srcfile)  # 分离文件名和路径
        if not os.path.exists(dstpath):
            os.makedirs(dstpath)  # 创建路径
        shutil.move(srcfile, dstpath + fname)  # 移动文件
        print("move %s -> %s" % (srcfile, dstpath + fname))


src_dir = r"E:/data/test1"    # 源文件路径
dst_dir = r"E:/data/test2/"  # 目的路径记得加斜杠
for root,dirs,files in os.walk(src_dir):
    for file in files:
        print(file)
        # 使用join函数将文件名称和文件所在根目录连接起来
        if file.endswith('TXT'):
            mymovefile(os.path.join(root, file),dst_dir)

打印结果 

C:\ProgramData\Anaconda3\envs\pytorch-cpu\python.exe F:/Study/move_test.py
1.TXT
move E:/data/test1\1.TXT -> E:/data/test2/1.TXT
3.TXT
move E:/data/test1\1\3.TXT -> E:/data/test2/3.TXT
4.TXT
move E:/data/test1\2\4.TXT -> E:/data/test2/4.TXT
2.TXT
move E:/data/test1\2\2\2.TXT -> E:/data/test2/2.TXT

Process finished with exit code 0

 文件夹 test1 下 .TXT 内容均已移动到指定文件夹 test2 下

参考文档:

Python 获取当前目录下的所有文件 - 简书 (jianshu.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dr.Petrichor

作者逐个题目分析的噢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值