获取特定驱动器的用户路径(从云中的其他目录导入模块)

2024-04-19 15:05:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试一种跨平台的方法,让python文件访问服务器托管文件系统(Google Drive)中的共享模块目录。
This thread很好地解释了如何从其他目录导入模块。你知道吗

And this thread结合第一个想法,解释如何获取用户文件,以便访问Google驱动器、Dropbox等可以轻松访问同一目录。你知道吗

将两者结合起来:

from os.path import join, expanduser
user_path = expanduser('~')
path_for_pyfiles = join(user_path, 'Google Drive', 'Modules')
print path_for_pyfiles
sys.path.insert(0, path_for_pyfiles)

但是,当我在一个有映射用户文件夹'U:'的位置运行这个程序,并且Google驱动器在'C:'上时,如何检索正确的用户路径? 为了澄清,它打印了:

'U:\\Google Drive\\Modules'

不是

'C:Users\\User\\Google Drive\\Modules'

摘要:如何获取与给定驱动器关联的用户路径?

我试过os.chdir('C:'),但那并没有真正影响它。你知道吗


Tags: 模块文件path用户目录modulesforos
1条回答
网友
1楼 · 发布于 2024-04-19 15:05:03

我最终通过引用环境USERPROFILE而不是依赖os.path.expanduser()来解决问题,而os.path.expanduser()显然使用了HOME(这是我的问题-HOME在我的例子中是U:\\而不是C:\\)。你知道吗

所以基本上这就是改变的地方:

user_path = environ['USERPROFILE']

我的结论是:

import sys
from os import path, environ
user_path = environ['USERPROFILE']
path_for_pyfiles = path.join(user_path, 'Google Drive', 'Shared Modules', '')

sys.path.insert(0, path_for_pyfiles)

from shared_module import *

但是,我还没有在其他计算机上检查过这个,所以我们会看看它是否会随着时间的推移而保持真实。你知道吗

如果这不能解决人们的问题,我还尝试直接设置os.environ属性。
(这对我不起作用,我也不知道这样做是否明智,但如果你遇到了问题,你可以去调查一下。)

相关问题 更多 >