2017-02-20 7 views
0

Это первая часть, которая работает, в основном создала 3 новых обязательных папки (1,2,3) в главном каталоге TEST, и если пользователь хочет добавить новый, они могут это сделать , Это Python_1Скопируйте папки в новую папку и добавьте

import os 
root_path = r"C:\TEST" 
list_dir = [] 
while True: 
    userinput1 = raw_input("Enter the name for Folder1, Folder2, Folder3:") 
    list_dir.append(userinput1) 
    userinput2 = None 
#ask user to respond 'yes' or 'no' as to whether they want to add another directory 
    while userinput2 != "yes" and userinput2 != "no": 
     userinput2 = raw_input("Would you like to add another directory? yes/no: ") 
    if userinput2 == "no": 
     break 
for directory in list_dir: 
    os.mkdir(os.path.join(root_path, directory)) 
print 'New directories have been created' 

Теперь мне нужен новый сценарий, который делает следующее: Создает новую основную папку РАБОЧЕЕ в TEST, и скопировать все папки, созданные в Python_1 во вновь созданной рабочей папку с прилагаемым _working с именем из скопированные папки.

Любые идеи? Большое спасибо за вашу помощь!

ответ

0
import os 
import shutil 

root_path = r"C:\TEST" 
new_main_folder = 'WORKING' 

list_dir = next(os.walk(root_path))[1] # Folder1, Folder2, Folder3 from Python_1 

# Creates C:\TEST\WORKING 
new_root_path = os.path.join(root_path, new_main_folder) 
os.mkdir(new_root_path) 

for directory in list_dir: 
    src = os.path.join(root_path, directory) # C:\TEST\Folder[1,2,3] 
    dest = os.path.join(new_root_path, directory + '_working') # C:\TEST\WORKING\Folder[1,2,3]_working 
    # or 
    # renamed_folder = directory + '_' + new_main_folder.lower() 
    # dest = os.path.join(new_root_path, renamed_folder) 
    shutil.copytree(src, dest) 
+0

Спасибо Titan, он создает рабочую папку, но по какой-то причине он не копирует созданные папки из Python_1 в рабочую папку. – user7380301

+0

Я думаю, list_dir = [] является пустым списком, а строки ниже никогда не выполняются. Как это исправить? – user7380301

+0

@ user7380301, В комментарии после 'list_dir = []' отображается 'Folder1, Folder2, Folder3 из Python_1'. Это означает, что в 'list_dir' вам нужно указать имена папок из' Python_1'. Из вашего вопроса мне непонятно, хотите ли вы предоставить имена этих папок самостоятельно или хотите, чтобы я добавил код, который может автоматически найти эти папки и обновить ответ? – TitanFighter