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

3
我在编写一个程序,用于设置我用来存储数据的文件路径。格式如下:
c://users/username/.../endingpath

当我切换电脑时,用户名会改变。是否有一种方法可以指定我正在使用的特定计算机的用户名?或者是否有更好的方法使路径与计算机无关?

我在Windows 7上运行Python 2.7。

4个回答

7
在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


2
我认为,为了保留应用程序设置,最好将配置文件存储在%APPDATA%下(如果有多个文件,请创建一个以您的应用程序命名的子目录并将它们存储在那里)。 - Matteo Italia
@MatteoItalia,我认为你是对的,我更新了答案以包含你的意见。感谢你的评论。 - steveha

2

为什么您推荐这种方法而不是检查环境变量 USERPROFILE?虽然这种方法可行,但似乎有些过度。 - steveha
1
环境变量不是查找该信息的地方。可能会在那里重复,但这只是一种便利,而不是契约。如果程序有访问API的权限,应使用它。 - Joey

1

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接