使用 shutil 将空文件放置在多个位置

Placing the empty file in multiple location using shutil

我在源代码中有一个名为 'Ready.txt' 的文件,我想在多个文件夹中拥有该文件的副本。

这是我写的代码。但是这些只复制到 sample2 文件夹而不是其他文件夹。我遗漏了一些东西,请让我知道哪里出了问题。

import shutil
import os


source = r'D:/Users/Desktop'
dest = r'D:/Users/Documents'
dest1 = dest + '/sample2'
dest2 = dest + '/sample3'
dest3 = dest + '/sample4'
files = os.listdir(source)





for f in files:
    f_path = os.path.join(source , f)
    if (f.startswith('Ready.txt')):
        shutil.copy(os.path.abspath(f_path), dest1)
    elif (f.startswith('Ready.txt')):
        shutil.copy(os.path.abspath(f_path), dest2)
    elif (f.startswith('Ready.txt')):
        shutil.copy(os.path.abspath(f_path), dest3)

print('done')

预期输出:

sample2 folder        
Ready.txt 

sample3 folder        
Ready.txt 

sample4 folder        
Ready.txt 

你的代码总是落入第一个 IF

你对每个语句都有相同的条件

PS 您可以在 Python

中删除不必要的圆括号
import shutil
import os


source = r'D:/Users/Desktop'
dest = r'D:/Users/Documents'
dest1 = dest + '/sample2'
dest2 = dest + '/sample3'
dest3 = dest + '/sample4'
files = os.listdir(source)





for f in files:
    f_path = os.path.join(source , f)
    if f.startswith('Ready.txt'):
        shutil.copy(os.path.abspath(f_path), dest1)
    elif f.startswith('Ready2.txt'):
        shutil.copy(os.path.abspath(f_path), dest2)
    elif f.startswith('Ready3.txt'):
        shutil.copy(os.path.abspath(f_path), dest3)

print('done')

编辑1: 根据评论,您需要将文件放在多个位置,然后执行以下操作:

import shutil
import os


source = r'D:/Users/Desktop'
dest = r'D:/Users/Documents'
dest1 = dest + '/sample2'
dest2 = dest + '/sample3'
dest3 = dest + '/sample4'
files = os.listdir(source)





for f in files:
    f_path = os.path.join(source , f)
    if f.startswith('Ready.txt'):
        shutil.copy(os.path.abspath(f_path), dest1)
        shutil.copy(os.path.abspath(f_path), dest2)
        shutil.copy(os.path.abspath(f_path), dest3)

print('done')