Я вижу пару ошибок в вашем коде.
os.popen('mkdir -p /Astronomy/' + DATE + '/' TIME) # this line works for DATE only
Это синтаксическая ошибка. Я думаю, что вы хотели иметь '/' + TIME
, а не '/' TIME
. Я не уверен, что вы подразумеваете под "эта строка работает только для DATE"?
subprocess.call(['mkdir', '-p', '/Astronomy/', DATE]), #THIS LINE DOESN'T WORK
Какую команду вы ожидаете вызвать? Я догадываюсь из остальной части вашего кода, что вы пытаетесь выполнить mkdir -p /Astronomy/<<DATE>>
. Это не то, что вы кодировали, хотя. Каждый элемент в списке, который вы передаете subprocess.call
, является отдельным аргументом, поэтому то, что вы написали, выглядит как mkdir -p /Astronomy <<DATE>>
. Это попытается создать два каталога, каталог корневого уровня /Astronomy
и еще один каталог в текущем рабочем каталоге с именем независимо от того, что DATE
является.
Если я прав относительно того, что вы хотели сделать, исправленная строка будет выглядеть так:
subprocess.call(['mkdir', '-p', '/Astronomy/' + DATE])
ответ Чоуна, использующий os.makedirs
(и использующий os.path.join
для объединения путей, а не строки +), на мой взгляд, является лучшим общим подходом. Но именно поэтому ваш текущий код не работает, насколько я могу судить.