Python создать папку рядом с.exe
Я использую Vizard для создания файла.exe из сценария Python. Мне нужен этот скрипт для создания папки, которая находится рядом с файлом.exe
if getattr(sys, 'frozen', False):
logging.warning('Application is exe')
loggingPath = os.path.dirname(sys.executable)
logging.warning(os.getcwd())
elif __file__:
loggingPath = os.path.dirname(__file__)
logging.warning('Application is script')
logging.warning(os.getcwd())
if not os.path.exists(loggingFolder):
logging.warning('Directory not existing... creating..')
os.makedirs(loggingFolder)
отлично работает, когда я выполняю из IDE, но в исполняемый файл он выбрасывает данные в папку Appdata в Windows/Users/Temp/randomfoldername.
Кроме того, я всегда приложение является сценарием, даже когда он упакован в EXE.
Может ли кто-нибудь указать мне правильное направление здесь? заранее спасибо
2 ответа
Модуль sys не имеет никакого атрибута frozen
в результате первый оператор if всегда возвращает False
,
sys.executable
даст путь к двоичному интерпретатору Python, т.е. для винды путь твой python.exe
файл, который я не могу понять, зачем вам это нужно.
Если вам нужно убедиться, что запущенный файл является .exe
файл, затем создайте папку рядом с ним, может быть проще просто проверить, заканчивается ли имя файла .exe
?
if __file__.endswith('.exe'):
loggingFolder = os.path.join(os.path.dirname(__file__), 'foldername')
if not os.path.exists(loggingFolder):
os.makedirs(loggingFolder)
Если вы просто хотите создать папку во время выполнения, то другой (возможно, более простой) метод - запустить программу-мастер из пакетного файла и сначала создать папку в пакетном файле.
например create run_viz_prog.bat
с таким содержанием:-
mkdir new_folder
my_viz_prog.exe