我在编写一个程序,用于设置我用来存储数据的文件路径。格式如下:
c://users/username/.../endingpath
当我切换电脑时,用户名会改变。是否有一种方法可以指定我正在使用的特定计算机的用户名?或者是否有更好的方法使路径与计算机无关?
我在Windows 7上运行Python 2.7。
c://users/username/.../endingpath
当我切换电脑时,用户名会改变。是否有一种方法可以指定我正在使用的特定计算机的用户名?或者是否有更好的方法使路径与计算机无关?
我在Windows 7上运行Python 2.7。
USERNAME
。import os
user_name = os.getenv("USERNAME")
%SystemDrive%\Users\{username}
),则可以使用USERDATA
或USERPROFILE
。这比尝试使用用户名构建自己的路径要好。
@Matteo Italia指出APPDATA
可能是最好使用的一个;它是专门用于应用程序存储其数据文件的目录。这对我来说很有道理;我认为他是正确的。
所以:
import os
appdata_dir_name = os.getenv("APPDATA")
http://en.wikipedia.org/wiki/Environment_variable#Examples_from_Microsoft_Windows
您应该使用SHGetKnownFolderPath函数找到适当的目录。您可以使用pywin32来使用该函数。
USERPROFILE
?虽然这种方法可行,但似乎有些过度。 - stevehaos.path.expanduser(path)
请确保路径名前面带有相对路径符号“~”或“~user”。
由于您指定了Windows 7,我假设您在所有计算机上都使用它来执行程序,因此您可以只需使用'%UserProfile%/.../endingpath'
(或'%UserProfile%\\...\\endingpath'
)。
http://en.wikipedia.org/wiki/Home_directory#Default_Home_Directory_per_Operating_System