设置值在python会话上持久化

时间:2014-10-01 21:06:55

标签: python file-sharing

我想在我的脚本中定义一个常量,就像我的Dropbox文件夹的路径一样。我的大多数脚本都会尝试加载Dropbox的一些数据,这些数据在我的PC之间共享,但我发现Mac和Ubuntu之间的前缀不同(/Users/<user>/Dropbox/home/<user>/Dropbox)。

有没有办法将这种信息保存在一个将在每个会话中加载的变量中,这样我就可以像DROPBOX这样的全局变量(什么是一个好的约定,__DROPBOX__?)作为文件的路径前缀名字,例如fname = DROPBOX + "myfile.txt"

有点让我想起在.Rprofile R中保存设置的{{1}}。

或者有更好的方法来解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

您可以使用内置环境变量来获取用户主目录的路径:

import os
print os.environ['HOME']

如果在新机器上运行,哪种方法可以解决您的问题。

答案 1 :(得分:0)

这个怎么样:

os.path.expanduser('~/Dropbox')

或者您可以尝试不同的替代方案:

dirs_to_try = ('/Users/Guido/Dropbox', '/home/Guido/Dropbox')
for path in dirs_to_try:
    if os.path.isdir(path):
        break
finally:
    print 'cannot find Dropbox directory'
    path = None