Windows中的python exe没有写入

时间:2017-11-26 09:16:31

标签: python

我已经使用pyinstaller将我的python程序转换为exe。我的exe创建了一个临时文件夹_MEIxxxxx来保存文件。在同一文件夹中有一个文件正在被程序更改,但不幸的是它没有发生。 在程序中我更改文件夹以转到上面的文件夹:

os.chdir('C:\\Users\\Public')
for foldername in os.listdir():
if foldername.startswith('_MEI'):
    myfolder = foldername
    os.chdir('C:\\Users\\Public'+myfolder+'\\Quiz')

提前致谢。

1 个答案:

答案 0 :(得分:1)

这不起作用:

os.chdir('C:\\Users\\Public'+myfolder+'\\Quiz')

因为myfolder在开始时不包含\

不要硬编码C:\Users\Public,请使用PUBLIC env。 VAR

避免chdir,它等同于所有模块之间共享的全局变量。如果某个模块需要一个当前目录,另一个模块需要另一个模块怎么办?

您的尝试看起来更像是移植到python cd xxx; ls; ...的shell脚本。打破这个习惯。

使用作为参数传递的绝对路径/路径。我的建议:

pubdir = os.getenv("PUBLIC")
for foldername in os.listdir(pubdir):
  if foldername.startswith('_MEI'):
      myfolder = foldername
      quizdir = os.path.join(pubdir,myfolder,'Quiz')
      # now do something with quizdir

如果您需要一个绝对目录来运行系统调用,subprocess函数有一个cwd参数。因此,您可以在99%的时间内避免os.chdir