Folder1 = "images" # Just assigns name to the folder
Folder2 = "images2"
Folder3 = "images2"

def main(argv=None):
            if not gfile.Exists(Folder1):
                gfile.MakeDirs(Folder1)
            if not gfile.Exists(Folder2):
                gfile.MakeDirs(Folder2)
            if not gfile.Exists(Folder2):
                gfile.MakeDirs(Folder2)

        if __name__ == '__main__':
            tf.app.run()

Есть ли лучший способ создать эти каталоги, используя словари и назначая имена папок для переменной?

0
Varun 29 Авг 2017 в 13:56

3 ответа

Лучший ответ

Да. Вы можете сохранить имена папок в списке и использовать цикл for для создания каждой папки:

folders = ["images", "images2", "images2"]

def main(argv=None):
    for folder in folders:
        if not gfile.Exists(folder):
            gfile.MakeDirs(folder)

Если вы предпочитаете обращаться к каждой папке по определенному имени, вы можете использовать словарь:

folders = {'Folder1': "image1", 'Folder2': "image2", 'Folder3': "image2"}

def main(argv=None):
    for folder in folders.values():
        if not gfile.Exists(folder):
            gfile.MakeDirs(folder)
0
Christian Dean 29 Авг 2017 в 11:19

Как насчет использования словаря как это:

folders = dict()
folders['Folder1'] = 'images'
for i in range(2, 4):
  folders['Folder' + str(i)] = 'images' + str(i)

def main(argv=None):
  for k, v in folders:
    if not gfile.Exists(v):
      gfile.MakeDirs(v)

if __name__ == '__main__':
  tf.app.run()

Первый цикл - создание словаря динамически.

0
Ahmedn1 29 Авг 2017 в 11:11

Или если хотите со словарями (как вы и просили)

def create_folders(**kwargs):
print(kwargs)
for fName in kwargs:
    print(kwargs[fName])
    if not gfile.Exists(kwargs[fName]):
       gfile.MakeDirs(kwargs[fName])

create_folders(Folder1="images",Folder2="images2",Folder3="images2")
0
durduliu2009 29 Авг 2017 в 11:10