Не понимаю, почему ничего не добавляется в список

#python #python-3.x #list

#python #python-3.x #Список

Вопрос:

У меня есть следующий код Python:

 import os

directory_test = []

for c in range (0,len(num_list),1):
    print("Hi, you are on num "   str(num_list[c])   ".")
    if os.path.isdir(os.getcwd()   "//"   str(num_list[c])):
        None
    else:
       os.makedirs(name = os.getcwd()   "//"   str(num_list[c]), exist_ok=True)
       directory_test.append(os.getcwd()   "//"   str(num_list[c]))
    print(directory_test)
 

Почему мой список, directory_test , пуст? Как я могу заполнить его из кода в else блоке?

Комментарии:

1. Однако "// «странно. Какую ОС вы используете? Вероятно, вам нужен один /.

2. Похоже os.getcwd() "//" str(num_list[c]) , это может быть проблемой, поскольку кажется, что os.path.isdir() возвращается False . Пожалуйста, покажите пример того, что передается listdir . Кроме того, что с двойными косыми чертами? Вы могли бы просто использовать os.path.join() вместо этого, что намного проще. Кроме того, это None само по себе странно, вы должны вместо этого использовать pass , поскольку для этого оно и предназначено.

3. Используйте os.path.join() для создания имени.

4. Из документа, на который я ссылался: «Разумно соедините один или несколько компонентов пути. Возвращаемое значение представляет собой конкатенацию path и любых элементов *paths с ровно одним разделителем каталогов после каждой непустой части, кроме последней, что означает, что результат будет заканчиваться разделителем, только если последняя часть пуста. Если компонент является абсолютным путем, все предыдущие компоненты отбрасываются, и объединение продолжается с компонента абсолютного пути «.

5. Итак, я идиот, каталоги уже были созданы, и поскольку мой каталог добавлялся только в операторе else, поэтому в список ничего не добавлялось.