我有一个工作模块,我试图把一个统一的yaml文件放在根目录下,供所有子模块使用。你知道吗
我有一个3层深的子模块配置S.yaml在根上。你知道吗
现在,我通过硬编码os.path.split()
行访问根目录,级别与neccession相同,我想知道是否有一种更pythonic的方法,或者更健壮的方法指向目录顶部。你知道吗
我在窗户上。python3.4,使用py2exe构建。你知道吗
文件夹结构如下。你知道吗
dps\U工具
纽约民主党
winsrv64版本
还有更多
if hasattr(sys, 'frozen'):
current_directory = os.path.split(sys.executable)[0]
else:
current_directory = os.path.split(os.path.split(os.path.split(os.path.dirname(
os.path.abspath("__file__")))[0])[0])[0]
if hasattr(sys, 'frozen'):
basis = sys.executable
else:
basis = os.path.dirname(os.path.abspath("__file__"))
current_directory = os.path.split(basis)[0]
有没有更一致的方法?或者可能是一个单线Python方式访问目录顶端?(即使我在windows上,目录top不是c:)
首先,注意
os.path.dirname(filepath)
等价于os.path.split(filepath)[0]
。你知道吗但是如果你需要提升几个级别,我会使用
os.path.normpath(os.path.join(filepath, '..', '..', '..'))
。我觉得它更可读。你知道吗EDIT:
ntpath
的normpath
也将用输入路径中的\\
替换/
,因此上面的行可以重新写入os.path.normpath(os.path.join(filepath, '../../..'))
,并且它是可移植的。你知道吗相关问题 更多 >
编程相关推荐