Python在.exe旁边创建文件夹

时间:2016-05-13 11:26:55

标签: python path directory exe vizard

我正在使用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。

有人能指出我在正确的方向吗? 提前致谢

2 个答案:

答案 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