7

我尝试用 Python 编写一个脚本,将文件保存在每个用户目录中。用户 1、2 和 3 的示例。

C:\Users\user1\Documents\ArcGIS\file1.gdb

C:\Users\user2\Documents\ArcGIS\file1.gdb

C:\Users\user3\Documents\ArcGIS\file1.gdb

我怎样才能做到这一点?

4

3 回答 3

11

正如一位评论者所指出的,最简单的解决方案是使用 USERPROFILE 环境变量来写入文件路径。这看起来像:

import os
userprofile = os.environ['USERPROFILE']
path = os.path.join(userprofile, 'Documents', 'ArcGIS', 'file1.gdb')

或者更简单(具有更好的平台独立性,因为这也适用于 Mac OSX/Linux;归功于Abhijit在下面的回答):

import os
path = os.path.join(os.path.expanduser('~'), 'Documents', 'ArcGIS', 'file1.gdb')

以上两种方法都可能在 Windows 版本之间存在一些可移植性问题,因为众所周知,Microsoft 会在“我的文档”中来回更改“文档”文件夹的名称。

如果您想要一种 Windows 便携式方式来获取“文档”文件夹,请参见此处的代码:https ://stackoverflow.com/questions/3858851#3859336

于 2013-07-25T16:20:15.083 回答
10

在 Python 中,您可以使用os.path.expanduser来获取用户的主目录。

>>> import os
>>> os.path.expanduser("~")

这是一种独立于平台的确定用户主目录的方法。

然后,您可以连接结果以创建最终路径

os.path.join(os.path.expanduser("~"), 'Documents', 'ArcGIS', 'file1.gdb')
于 2013-07-25T16:19:30.130 回答
1

您想使用环境变量 HOME,如下所示:

import os
homeDir = os.environ["HOMEPATH"]
file = open(homeDir+"Documents\ArcGIS\file1.gdb")
file.write("Hello, World")
file.close()

请注意,考虑到您使用的是 Windows,我使用了 HOMEPATH,这可能是错误的,具体取决于您的操作系统。看看这个:http ://en.wikipedia.org/wiki/Environment_variable

于 2013-07-25T16:24:06.880 回答