我正在编写一个程序来设置用于存储数据的文件路径。格式如下
c://users/username/.../endingpath
当我切换计算机时,用户名会更改。有没有一种方法或方法可以指定我正在使用的特定计算机的用户名?还是有更好的方法使路径计算机独立?
我在 Windows 7 上运行 Python 2.7
我正在编写一个程序来设置用于存储数据的文件路径。格式如下
c://users/username/.../endingpath
当我切换计算机时,用户名会更改。有没有一种方法或方法可以指定我正在使用的特定计算机的用户名?还是有更好的方法使路径计算机独立?
我在 Windows 7 上运行 Python 2.7
在 Windows 下,您可以查看几个预定义的环境变量。其中之一是USERNAME
。
所以:
import os
user_name = os.getenv("USERNAME")
Windows 还为某些目录定义了环境变量。如果您的文件应该存储在用户的个人主目录中(在 Windows 7 上,这是:),%SystemDrive%\Users\{username}
您可以使用USERDATA
或USERPROFILE
. 这比尝试使用用户名构建自己的路径要好。
@Matteo Italia 指出这APPDATA
可能是最好用的;这是一个专门供应用程序存储其数据文件的目录。这对我来说很有意义;我认为他是对的。
所以:
import os
appdata_dir_name = os.getenv("APPDATA")
我在 Wikipedia 中找到了 Windows 环境变量列表:
http://en.wikipedia.org/wiki/Environment_variable#Examples_from_Microsoft_Windows
您应该使用SHGetKnownFolderPath 函数找到适当的目录。您可能可以使用pywin32来使用该功能。
使用以下
os.path.expanduser(path)
确保路径与路径名前面的 ~ 或 ~user 是相对的
由于您指定了 Windows 7,我假设您在将执行该程序的所有计算机上都使用它,因此,您只需使用'%UserProfile%/.../endingpath'
. (或'%UserProfile%\\...\\endingpath'
。)
http://en.wikipedia.org/wiki/Home_directory#Default_Home_Directory_per_Operating_System