如何找到根目录以便路径可以在多台计算机上运行?

时间:2012-06-25 20:02:04

标签: python windows path python-2.7

我正在编写一个程序来设置用于存储数据的文件路径。格式如下

c://users/username/.../endingpath

当我切换计算机时,用户名已更改。有没有一种方法或方法可以指定我正在使用的特定计算机的用户名是什么?或者是否有更好的方法使路径计算机独立?

我在Windows 7上运行Python 2.7

4 个答案:

答案 0 :(得分:6)

在Windows下,您可以查看几个预定义的环境变量。其中之一是USERNAME

所以:

import os
user_name = os.getenv("USERNAME")

Windows还定义了某些目录的环境变量。如果您的文件应存储在用户的个人主目录中(在Windows 7上,这是:%SystemDrive%\Users\{username}),您可以使用USERDATAUSERPROFILE。这比尝试使用用户名构建自己的路径更好。

@Matteo Italia指出APPDATA可能是最好用的;这是应用程序存储其数据文件的目录。这对我来说很有意义;我认为他是对的。

所以:

import os
appdata_dir_name = os.getenv("APPDATA")

我在维基百科中找到了一个Windows环境变量列表:

http://en.wikipedia.org/wiki/Environment_variable#Examples_from_Microsoft_Windows

答案 1 :(得分:2)

您应该使用SHGetKnownFolderPath function找到合适的目录。您可以使用pywin32来使用该功能。

答案 2 :(得分:1)

由于您指定了Windows 7,我假设您在将要执行该程序的所有计算机上使用它,因此,您可以使用'%UserProfile%/.../endingpath'。 (或'%UserProfile%\\...\\endingpath'。)

http://en.wikipedia.org/wiki/Home_directory#Default_Home_Directory_per_Operating_System

答案 3 :(得分:1)

使用以下

os.path.expanduser(path)

确保路径与路径名前面的〜或〜用户相对

http://docs.python.org/library/os.path.html