gpt4 book ai didi

Python - 一次 move 10 个文件

转载 作者:行者123 更新时间:2023-11-28 21:51:41 25 4
gpt4 key购买 nike

您好,我是编程新手,请原谅我的无知。我试图在任何情况下将 10 个文件从目录 A move 到 B,但是程序应该足够灵活,当源目录中的文件少于 10 个时,它不应该给出错误,而其余大部分。

我正在使用的循环是。当目录中有超过 10 个文件时,这很有效

w =0
while w < 10:
w =w+1
apple = random.choice(os.listdir("/home/prabh00b/dakoat_wb_script/2"))
o = ''.join(["/home/prabh00b/dakoat_wb_script/2/", apple])
shutil.move(o,"/home/prabh00b/dakoat_wb_script/")

最佳答案

不使用 random.choice,而是使用 random.sample从目录列表中获取 10 个元素。这样做的好处是您只需调用 os.listdir 一次,而无需为了选择一个新的随机元素而循环 10 次。它还会始终为您提供不同的元素,因此您最终不会尝试将同一个文件 move 两次。

处理少于​​10个文件的情况,你可以先检查目录列表的长度。我们可以通过获取 10 的最小值或列表的长度(因此您最多获得 10 个元素)来很好地做到这一点。

files = os.listdir('/home/prabh00b/dakoat_wb_script/2')
for fileName in random.sample(files, min(len(files), 10)):
path = os.path.join('/home/prabh00b/dakoat_wb_script/2', fileName)
shutil.move(path, '/home/prabh00b/dakoat_wb_script/')

关于Python - 一次 move 10 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29705305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com