Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как автоматически копировать файл с именем папку в python?

Пророк Знаток (410), закрыт 4 года назад
Задачка не из легких. Цель написать программу которая будет проверять все папки в указанной директории и находить файл с определенным названием и если он есть в папке копировать его в указанную директорию с именем папки в которой он находился.

Да понимаю что вызову негативную реакцию типа "халявщик", "включи мозги и сделай сам".

Я не глупый просто знаний в данном вопросе не хватает.
Есть небольшие подвижки:

import os
import shutil

import os

file = "report.txt"

directory = os.walk('F:')
for d in directory:
****if (any(file in i for i in d)):
********print(shutil.copyfile(r'F:\report.txt', r'F:\Новая папка\new_test.txt'))
****else:
********print()

print (d)

и вот тут знания заканчиваются нужно как то передать в первый аргумент путь к файлу который будет находить прога, значит нужно создать переменную в которую будет в цикле попорядку записываться путь, если там есть указанный файл, и как файлу в автоматическом режиме присвоить имя папки тоже не как ума не дам. Вообщем буду рад любым советам. Спасибо.
Лучший ответ
Black Afgano Просветленный (22282) 4 года назад
root = 'F:'
dest = 'F:\\temp'

for (thisdir, subshere, fileshere) in os.walk(root):
____for fname in fileshere:
________if fname == file:
____________path = os.path.join(thisdir, fname)
____________shutil.copy(path, dest)
ПророкЗнаток (410) 4 года назад
Класс! Когда же я уже научусь кодить.
Остальные ответы
Александр Тарасов Мыслитель (5998) 4 года назад
Попробуй вывести d в цикле for d in directory. Напиши, что выведется.
ПророкЗнаток (410) 4 года назад
выводится кортеж а в нем списки через запятую всех файлов и папок находящихся в директории
Александр Тарасов Мыслитель (5998) if (any(file in i for i in d)): Здесь ты перебираешь все файлы в d. Они выводятся в i. Попробуй for i in d: print(i) Что он тогда выведет?
Похожие вопросы