Python-一次移动10个文件 - python

嗨,我对编程非常陌生,请原谅我的无知。
我试图在任何情况下将10个文件从目录A移到目录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/")

python大神给出的解决方案

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

要处理少于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/')