使用 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')
我在源代码中有一个名为 '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')