如何查找一个动态更改的目录名称的路径?

3
我想在我的Python代码中访问Ubuntu上的以下路径:
~/.mozilla/firefox/dh4ytbdj.default/bookmarkbackups 

这段内容是关于Firefox书签的。

问题在于每个用户和机器的 '.default' 前面的部分都不同。我能否指定一个通用路径来访问该目录,并使Python访问它并检索所需文件?

并且,是否可能在Python代码中实现 '~' 来访问当前用户的主目录?


我为此道歉,谢谢。 - Shokry
2
没问题..我也得学习这个。我发现,帖子越易读懂,答案就越有可能出现 :) - Levon
1个回答

3
>>> import os
>>> os.path.expanduser('~/.mozilla/firefox/dh4ytbdj.default/bookmarkbackups')
'/home/username/.mozilla/firefox/dh4ytbdj.default/bookmarkbackups'

如果你有足够的权限,想要系统范围内访问个人Firefox目录,可以尝试以下方法:

>>> import glob
>>> glob.glob('/home/*/.mozilla/firefox/*.default/bookmarkbackups')

正如@NedBatchelder所指出的,这可以合并为一个命令:

import os, glob
next(glob.iglob(os.path.expanduser('~/.mozilla/firefox/*.default/bookmarkbackups')))

返回一个(如果存在的话)路径。

谢谢,这解决了'~'的问题,但仍然无法访问'.default'之前的任何名称。 - Shokry
@user1239277 - 通配符解决方案使用 glob 对你有效吗? - eumiro
2
不妨将两者结合起来:glob.glob(os.path.expanduser("~/.mozilla/firefox/*.default/bla")) - Ned Batchelder
2
@eumiro:OP说的是~和“当前用户的主目录”。 - Ned Batchelder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接