【发布时间】:2011-07-25 17:33:48
【问题描述】:
我有一个程序,我们可以创建一个用于分发的 exe。我的客户运行 XP、Vista 和 7。我们正在尝试通过调整日志文件在 Win7 和 Vista 中写入的位置来简化安装,因为在 XP 中我们不必担心这一点。我们正在尝试使用platform.release() 来决定在哪里写入日志文件。如果不是XP那么我们会将日志文件写入os.environ["LOCALAPPDATA"]指定的位置。
我只是想确保在 XP 机器上运行时,我们只会得到“XP”作为返回值,对于 Vista 和 7,我们也只会得到那些预期的结果。例如,是否有某种 XP 风格会返回 XP.v2(我编造的)?
我们在谷歌上搜索了答案,但找不到任何足够具体的东西来确定。
感谢您的帮助。 干杯
【问题讨论】:
-
作为一种替代方法,是否可以有一个案例:
if "LOCALAPPDATA" not in os.environ:? -
@altie 谢谢我担心 LOCALAPPDATA 在某些设置中可能不存在作为添加的安全层,所以我想确定我知道如果 WIN7 而不是 LOCALAPPDATA 该怎么办
-
请注意,您应该使用 ShGetFolderPath 等 shell 函数获取本地 appdata 之类的内容。这将始终提供正确的结果。那么你也不需要担心操作系统。 (请参阅this 之类的内容了解如何操作。)