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

Python 如何找到根目录,以便路径可以跨多台计算机工作?,python,windows,path,python-2.7,Python,Windows,Path,Python 2.7,我正在编写一个程序,设置一个用于存储数据的文件路径。格式如下 c://users/username/.../endingpath 当我切换计算机时,用户名被更改。有没有一种方法可以指定我正在使用的特定计算机的用户名?还是有更好的方法使路径独立于计算机 我在Windows 7上运行Python 2.7,在Windows下,有几个预定义的环境变量可以查看。其中之一是USERNAME 因此: Windows还为某些目录定义了环境变量。如果您的文件应该存储在用户的个人主目录中(在Windows 7上,

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

c://users/username/.../endingpath
当我切换计算机时,用户名被更改。有没有一种方法可以指定我正在使用的特定计算机的用户名?还是有更好的方法使路径独立于计算机


我在Windows 7上运行Python 2.7,在Windows下,有几个预定义的环境变量可以查看。其中之一是
USERNAME

因此:

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

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

因此:

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


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


您应该使用找到合适的目录。您可能可以使用来使用该函数。

使用以下命令

os.path.expanduser(path)
确保路径与路径名前面的~user或~user相对


我想说,为了保持应用程序设置,最好是将配置文件存储在%APPDATA下(如果有多个文件,请创建一个以应用程序命名的子目录,并将它们存储在那里)。@MatteoItalia,我认为你是对的,我更新了答案以包含你的输入。感谢您的评论。您为什么建议这样做而不是检查环境变量
USERPROFILE
?这会起作用,但似乎有些过分。环境变量不是查找这些信息的地方。它可能在那里复制,但这是一种方便,不是一份合同。如果程序可以访问API,则应使用它。
import os
appdata_dir_name = os.getenv("APPDATA")
os.path.expanduser(path)