Использование Python для создания пустых папок в пользовательских каталогах - PullRequest
0 голосов
/ 11 октября 2018

Я создал скрипт Python для создания новых папок в каталогах пользователей.Однако, это работает хорошо, если программа запускается снова, то по какой-то причине она создаст пустые папки в корневом каталоге.В качестве примера

Root - Дейв

  • Джим

  • Боб

После запуска программы один раз

  • Дейв

---- Наука

---- Английский

----Математика

  • Джим

---- Наука

---- Английский

---- Математика

  • Боб

---- Наука

---- Английский

---- Математика

Послепрограмма запустилась снова (только если добавлен новый пользователь) это происходит

  • Наука

  • Английский

  • Математика

  • Дейв

---- Наука

---- Английский

---- Математика

  • Джим

---- Наука

---- Английский

-- Математика

  • Боб

---- Наука

---- Английский

---- Математика

Если программа запущенаопять же, это работает.

Любая помощь будет оценена.

Та

Код здесь:

import os

currentPath = os.getcwd()
folders = ["English","Science","Maths"]

directory_list = list()
for root, dirs, files in os.walk(currentPath, topdown=False):
    for name in dirs:
        directory_list.append(os.path.join(root, name))

        path = currentPath+"\\"+name

        for i in range(len(folders)):

            try:  
                os.makedirs(path+"/"+folders[i])
            except OSError:  
                print ("Creation of the directory %s failed" % path)
            else:  
                print ("Successfully created the directory %s " % path)

1 Ответ

0 голосов
/ 11 октября 2018

Вы должны сначала проверить, существует ли каталог, прежде чем создавать новый с тем же именем.

import os

currentPath = os.getcwd()
folders = ["English","Science","Maths"]

directory_list = list()
for dir in os.listdir(currentPath):

    temp_path = currentPath+"\\"+dir

    if os.path.isdir(temp_path):
        for folder in folders:
            if not os.path.isdir(temp_path+"\\"+folder):
                new_folder = temp_path+"\\"+folder
                try:
                    os.makedirs(temp_path+"\\"+folder)
                except OSError:  
                    print ("Creation of the directory %s failed" % new_folder)
                else:  
                    print ("Successfully created the directory %s " % new_folder)

Мне пришлось немного переписать код, но я проверил это, и он работает!

Я думаю, что запись в var path давала непреднамеренное поведение, поэтому я переименовал переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...