根据用户Python保存文件

Ces*_*arD 5 python

我尝试用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
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Abh*_*jit 9

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

>>> import os
>>> os.path.expanduser("~")
Run Code Online (Sandbox Code Playgroud)

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

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

os.path.join(os.path.expanduser("~"), 'Documents', 'ArcGIS', 'file1.gdb')
Run Code Online (Sandbox Code Playgroud)


Har*_*wEm 8

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

import os
userprofile = os.environ['USERPROFILE']
path = os.path.join(userprofile, 'Documents', 'ArcGIS', 'file1.gdb')
Run Code Online (Sandbox Code Playgroud)

或者甚至更简单(具有更好的平台独立性,因为这也可以在Mac OSX/Linux上运行;相信Abhijit的答案如下):

import os
path = os.path.join(os.path.expanduser('~'), 'Documents', 'ArcGIS', 'file1.gdb')
Run Code Online (Sandbox Code Playgroud)

上述两者都可能在Windows版本中存在一些可移植性问题,因为已知Microsoft会从"我的文档"来回更改"Documents"文件夹的名称.

如果您希望以Windows便携式方式获取"Documents"文件夹,请参阅此处的代码:https://stackoverflow.com/questions/3858851#3859336

  • 我认为将其他答案增加到你的内容并不是一个好习惯.这使得其他答案变得无用且冗余. (3认同)