При запуске из командной строки ваш сценарий, вероятно, получает только имя файла сценария, а не полный путь.Поэтому при запуске из командной строки ваш сценарий пытается выполнить mkdir в корневой папке ("/").Ниже приведен быстрый скрипт, который вы можете запустить, чтобы увидеть, как работает ваша система.
import os, sys
dirname_out = os.path.dirname(sys.argv[0])
print('sys.argv[0] is {}'.format(sys.argv[0])) # See difference from REPL and when run as script
print('cwd is {}'.format(os.getcwd())) # Might be what you want
print('dirname is: {}'.format(dirname_out))
print('dirname of cwd is: {}'.format(os.path.dirname(os.getcwd()))) # Not recommended
В зависимости от того, как вы хотите, чтобы ваш скрипт работал, ваше решение будет различным.Я не уверен в желаемом результате, так как вы не указали входные данные при выполнении сценария.
Если вы хотите запустить сценарий и всегда создавать новый каталог в том же каталоге, в котором вы запускали сценарий, вывероятно, нам нужен «os.getcwd ()» для создания базового каталога.
Если вы хотите указать место для создания каталога, то вы, вероятно, захотите передать каталог в скрипт, проверив, проанализировави конструирование из sys.argv [1].