2015-12-12 4 views
1

Я новичок в Python и пытаюсь написать автоматизированную тестовую программу. В частности, я пытаюсь скопировать несколько файлов .xlsx из одного каталога в другой. Я исследовал довольно тщательно и частично там. Мой код ниже, который не возвращается и ошибки, но не выполняет то, что я пытаюсь сделать. Я считаю, что мой код недостаточно подробный (я застрял на уровне каталога). В двух словах: файл A содержит c, d, e, f.1, f.2, f.3 (все документы Excel). Файл B пуст. Я пытаюсь скопировать f.1, f.2 и f.3 в файл B. Я считаю, что мне нужно добавить функцию startswith в какой-то момент. Любая помощь приветствуется. Благодаря!Python - копирование нескольких файлов внутри каталога

import os 
import shutil 
import glob 

source = 'C:/Users/acars/Desktop/a' 
dest1 = 'C:/Users/acars/Desktop/b' 

src_files = os.listdir('C:/Users/acars/Desktop/a') 

for file_name in src_files: 
    full_file_name = os.path.join('C:/Users/acars/Desktop/a','a') #'a' incorrect 
    if (os.path.isfile(full_file_name)): 
     shutil.copy(full_file_name, dest1) 
    else: 
     break 

ответ

1

Используйте переменные source и dest1:

source = 'C:/Users/acars/Desktop/a' 
dest1 = 'C:/Users/acars/Desktop/b' 

src_files = os.listdir(source) 

for file_name in src_files: 
    if not file_name.startswith('f'): 
     continue 
    src = os.path.join(source, file_name) # <-- 
    dst = os.path.join(dest1, file_name) # <-- 
    shutil.copy(src, dst) 
+0

Спасибо. Это скопировало все файлы. Я хотел бы просто скопировать те, которые начинаются с 'f', и в конечном итоге переименовать их в файл назначения. – AndrewC10

+0

Я предполагаю, что мне нужен оператор if, определяющий startswith – AndrewC10

+0

@ AndrewC10, я обновил код в ответе, чтобы пропустить файлы, имя которых не начинается с 'f'. – falsetru