python目录结构,在Python中展开复杂的目录结构

这个博客介绍了一个Python脚本,用于移动文件到指定目标目录,但避免扫描目标目录本身。通过使用`os.walk`和`itertools.islice`,脚本在首次迭代中忽略目标目录的顶层文件,提高了效率。此外,还提供了另一种更直观的实现方式,通过设置一个布尔标志在第一次迭代时跳过。
摘要由CSDN通过智能技术生成

我不想测试将要移动的文件的名称,看我们是否已经在目标目录中。相反,此解决方案只扫描目标的子目录import os

import itertools

import shutil

def move(destination):

all_files = []

for root, _dirs, files in itertools.islice(os.walk(destination), 1, None):

for filename in files:

all_files.append(os.path.join(root, filename))

for filename in all_files:

shutil.move(filename, destination)

说明:os.walk以“自顶向下”的方式递归地遍历目的地。整个文件名是用os.path.join(root,filename)调用构造的。现在,为了防止扫描目标顶部的文件,我们只需要忽略os.walk迭代的第一个元素。为此,我使用islice(iterator,1,None)。另一个更明确的方法是:def move(destination):

all_files = []

first_loop_pass = True

for root, _dirs, files in os.walk(destination):

if first_loop_pass:

first_loop_pass = False

continue

for filename in files:

all_files.append(os.path.join(root, filename))

for filename in all_files:

shutil.move(filename, destination)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值