Я пытаюсь скопировать файлы из 3 родительских путей в дочерние пути с разными именами, и я изо всех сил пытаюсь заставить его выполнить последнюю часть головоломки! У меня есть 2 списка:
Cust относятся к и относятся к числу:
Джо = 010
Боб (имя родителя) = 016
Отметка = 018
Джон (сын Боба) = 016
Питер (сын Боба) = 016
Мне удалось заставить свой код проверять, существует ли путь к файлу в исходных папках, и если его нет, то заменить John или Peter (дочерние) на Bob (родительский). Он правильно возвращает пути к файлам.
def copyFiles(cust_list, proj_num):
cust_list = ['Joe', 'Bob', 'Mark', 'John', 'Peter']
proj_num = ['010', '016', '018']
for cust, num in zip(cust_list, proj_num):
source = f'C:/Users/Desktop/Automation_Testing/Live_{num} ({cust})/01_Docs_Issued/'
dest = f'C:/Users/Desktop/Automation_Testing/new_{cust}/Data/'
if not os.path.exists(source):
new_cust = cust.replace(cust, 'Bob')
source = source.replace(cust, new_cust)
print(source)
выход
'C:/Users/Desktop/Automation_Testing/Live_010 (Joe)/01_Docs_Issued/'
'C:/Users/Desktop/Automation_Testing/Live_016 (Bob)/01_Docs_Issued/'
'C:/Users/Desktop/Automation_Testing/Live_018 (Mark)/01_Docs_Issued/'
'C:/Users/Desktop/Automation_Testing/Live_016 (Bob)/01_Docs_Issued/'
'C:/Users/Desktop/Automation_Testing/Live_016 (Bob)/01_Docs_Issued/'
То, что я не могу сделать, это скопировать файл из каждой исходной папки, которая содержит определенную строку в имени файла и расширении (.pdf), в каждый из указанных выше путей назначения для каждого имени клиента в месте назначения. Я ожидаю скопировать файл в следующие места.
C:/Users/Desktop/Automation_Testing/new_Joe/Data/'
C:/Users/Desktop/Automation_Testing/new_Bob/Data/'
C:/Users/Desktop/Automation_Testing/new_Mark/Data/'
C:/Users/Desktop/Automation_Testing/new_John/Data/'
C:/Users/Desktop/Automation_Testing/new_Peter/Data/'
Я перепробовал много вариантов for
, if
, и я просто не могу скопировать файлы.
for file in os.listdir(source):
if 'INVOICE' in file.upper():
file_type = '.pdf'
if file_type == True:
shutil.copy(os.path.join(source, file), dest)
print(os.path.join(dest, file))
Надеюсь, это имеет смысл, и заранее благодарю вас за любые вопросы или советы.
Извините, но это не имеет смысла. Ваше объяснение проблемы для меня недостаточно, я не понял в чем проблема. Можете ли вы предоставить минимально воспроизводимый пример или использовать методы отладки, чтобы найти источник проблемы?
Привет, спасибо за ваш ответ. Извините, что не ясно, это немного сложно объяснить. В основном я пытаюсь переместить файл из каждой из родительских папок в дочерние папки на основе списка клиентов. Но если пользовательское имя отсутствует в родительской папке, замените дочернее имя на родительское и скопируйте файл. Спасибо за попытку понять. Я буду продолжать подключаться и посмотреть, смогу ли я это решить.