#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, поэтому в список ничего не добавлялось.