python会话持续的设置值
我想在我的脚本中定义一个常量,就像我的Dropbox文件夹的路径。大多数我的脚本会尝试加载一些在我的PC*享的Dropbox数据,但我发现Mac和Ubuntu之间的前缀不同(/Users/<user>/Dropbox
与/home/<user>/Dropbox
)。python会话持续的设置值
有没有办法将这种信息保存在每个会话中加载的变量中,这样我就可以拥有像DROPBOX这样的全局变量(作为一个很好的约定,__DROPBOX__?)作为路径前缀给一个文件名,例如fname = DROPBOX + "myfile.txt"
。
有点让我想起在.Rprofile
中定义这个,它保存着R
中的设置。
还是有更好的方法来处理这个问题吗?
你可以使用内置的环境变量,以获得用户的主目录的路径:
import os
print os.environ['HOME']
这将解决你的问题的方式,更有可能出现在新机器上运行,以保持稳定。
非常好,知道肯定有东西。 – PascalVKooten 2014-10-01 21:15:59
然后,不得不导入os并使用那个长名称仍然不是首选。我想我应该只是与相对路径工作不幸。 – PascalVKooten 2014-10-01 21:18:22
如何:
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
我的意思是......一种方法是将其设置为全局函数,但是我仍然基本上希望它在任何Python会话中都可用,从此开始。首先就是这个问题。 – PascalVKooten 2014-10-02 07:38:18
见http://*.com/questions/13887798/saving-and-recovering-values-变数之间的执行 – user3757614 2014-10-01 21:11:44
@ user3757614糟糕的例子,我知道酸洗当然不是要走的路。 – PascalVKooten 2014-10-01 21:13:32