我正在使用Vizard从python脚本创建一个.exe文件。我需要这个脚本来创建一个驻留在.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执行时工作正常,但在exe文件中,它会在Windows / Users / Temp / randomfoldername中的Appdata文件夹中抛出数据。
另外,我总是应用程序是脚本,即使它被打包成exe。
有人能指出我在正确的方向吗? 提前致谢
答案 0 :(得分:1)
sys模块没有任何属性frozen
,这导致第一个if语句始终返回False
。
sys.executable
将给出python解释器二进制文件的路径,即。对于Windows,python.exe
文件的路径,我无法理解为什么你需要这个。
如果你想要的是确保运行的文件是.exe
文件,然后在它旁边创建一个文件夹,那么检查文件名是否以.exe
结尾可能更简单? / p>
if __file__.endswith('.exe'):
loggingFolder = os.path.join(os.path.dirname(__file__), 'foldername')
if not os.path.exists(loggingFolder):
os.makedirs(loggingFolder)
答案 1 :(得分:0)
如果你只想在运行时创建一个文件夹,那么另一种(可能更简单的)方法是从批处理文件中运行你的vizard程序,并在批处理文件中首先创建文件夹
e.g。 create run_viz_prog.bat
内容如下: -
mkdir new_folder
my_viz_prog.exe