#python #python-3.x #file #directory #shutil
#python #python-3.x #файл #каталог #shutil
Вопрос:
Я пытаюсь создать последовательность папок, которая содержит вложенные папки, содержащие файлы с помощью python.
Имена этих папок берутся из текстового файла, в котором есть список с путями внутри, например:
songs101_TNTOGCD101_2020_CONTENT_LOOP_TNTOGCD.mov
songs101_TNTOGCD101_TNTOGCD_CONTENT_TC_A B_CBLDESIGN2.mov
Количество вложенных папок не всегда одинаково, иногда это могут быть две вложенные папки и файл, иногда только одна папка и файл.
Все это должно быть создано в указанной папке по моему выбору.
Это то, что я делал до сих пор:
import os
import shutil
import os.path
with open("C:\Users\Desktop\folder1\folder2\folder3\textfile.txt", "r") as g:
lines = g.readlines()
base_path = "C:\Users\Desktop\folder1\folder2\folder3"
mov_origin = "C:\Users\Desktop\folder1\folder2\folder3\folder4\file_000.mov"
for line in lines:
target = base_path
path = line.split("\")
for i in range(len(path) - 1):
target = path[i]
if not os.path.exists(target):
os.makedirs(target)
else:
pass
target = "\"
target = path[-1].replace("n", "")
print(target)
shutil.copyfile(mov_origin, target)
Но в основном, когда я запускаю его, ничего не происходит.
Я не получил никакой ошибки, но ничего не создано.
Что я делаю не так?
Заранее спасибо за вашу помощь!
ОБНОВЛЕНИЕ: код не работал из-за моей ошибки в конфигурации запуска / отладки в PyCharm. Был выбран неправильный путь скрипта.
Ответ №1:
Код работал. Проблема возникла из-за моей ошибки в конфигурации запуска / отладки в PyCharm. Был выбран неправильный путь скрипта.
Комментарии:
1. Не забудьте также принять это, это покажет другим, что вы довольны результатом. Хорошая работа!
2. Это не позволяет мне принять его раньше, чем за два дня, я думаю, это вопрос привилегий? Я сделаю это обязательно, как только смогу. Спасибо за всю вашу помощь, высоко ценится!
Ответ №2:
Я думаю, вам нужно дать ему что-то для открытия. Строка
with open("C:\Users\xxxx\xxxx\xxxx\xxxx\xxxx.txt", "r") as g:
невозможно ничего сделать, если у вас нет папок, которые на самом деле называются XXXX … и т.д.
Что он делает, когда у вас есть правильный путь к файлу там?
Когда я попробовал это, он напечатал строки, которые находятся в этом текстовом файле. Я бы широко использовал операторы печати, пока вы не увидите, в чем проблема.
import os
import shutil
import os.path
#lines = []
with open("/Users/.../Desktop/OPW_DATA/comments.txt", "r") as g:
lines = g.readlines()
base_path = "/Users/.../Desktop/"
#mov_origin = "C:\Users\xxxx\xxxx\xxxx\xxxx\xxxx\file_000.mov"
for line in lines:
print('line:', line)
target = base_path
print('target:',target)
path = line.split("\")
for i in range(len(path) - 1):
target = path[i]
if not os.path.exists(target):
os.makedirs(target)
else:
pass
target = "\"
target = path[-1].replace("n", "")
print(target)
#shutil.copyfile(mov_origin, target)
Комментарии:
1. Привет, спасибо за ваш ответ. Я изменил свой фактический путь на xxxx только по соображениям конфиденциальности. В моем коде есть правильный путь к папкам и так далее.
2. Я просто публикую свой каталог и заменяю a … для всего, что должно быть закрытым. Это дает лучшее представление о том, как должен выглядеть код.
3. Спасибо за ваш совет, я его изменю.
4. Понял, спасибо за вашу помощь до сих пор! Я постараюсь сделать это лучше.
5. Добавлено разрешение для «нерабочего кода» в описании проблемы.