Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python unipath:当前文件目录(祖先)的路径不输出任何内容_Python_Python 2.7 - Fatal编程技术网

python unipath:当前文件目录(祖先)的路径不输出任何内容

python unipath:当前文件目录(祖先)的路径不输出任何内容,python,python-2.7,Python,Python 2.7,我一直在努力学习并掌握基本的命令。然而,我被这个问题难住了。因此,我想获得当前文件的祖先(2)。因此,在python解释器上,我执行如下操作: Python 2.7.3 (default, Jan 2 2013, 13:56:14) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from unipath import Path

我一直在努力学习并掌握基本的命令。然而,我被这个问题难住了。因此,我想获得当前文件的祖先(2)。因此,在python解释器上,我执行如下操作:

Python 2.7.3 (default, Jan  2 2013, 13:56:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from unipath import Path
>>> ORM_ROOT = Path("/home/foo/lump/foobar/turf/orm/unipath_try.py").ancestor(2)
>>> ORM_ROOT
Path('/home/foo/lump/foobar/turf')
…这是正确的,也正是我想要的。 现在,我将其包装在一个文件中,如下所示:

# -*- coding: utf-8 -*-
# unipath_try.py

from unipath import Path
ORM_ROOT = Path(__file__).ancestor(2)
print ORM_ROOT
当我使用
python unipath\u try.py运行这个程序时,我没有得到任何输出!也没有导入错误。
我完全搞不懂为什么会这样——可能是很愚蠢的事情。
如果您在这方面有任何帮助/指导,我们将不胜感激:(

使用
os.path.abspath(\uuuu文件\uuuu)
而不是
\uu文件

这是因为在您的案例中,
\uuuuuuu文件
包含一个相对路径

\uuuu文件\uuuu
在不同情况下可以包含相对路径或绝对路径:

因此,如果您不在sys.path中包含 模块,您将获得一个绝对路径。如果您位于 包含模块的sys.path,您将获得一个相对路径

如果在当前目录中加载模块,则当前 目录不在sys.path中,您将获得一个绝对路径

如果在当前目录中加载模块,则当前 目录位于sys.path中,您将获得一个相对路径


(引用自)

如果在文件所在的目录中运行脚本,
\uuuuuu file\uuuu
filename.py

>>> Path('a.py')
Path(u'a.py')
>>> Path('a.py').ancestor(2)
Path(u'')
使用以下命令传递绝对路径:

备选方案

您还可以使用
absolute()
方法

Path('t.py').absolute().ancestor(2)

非常感谢你的回答——事实上你是对的。不过我会根据时间接受alecxe的回答:)@JohnJ,没关系。还有其他选择。:)非常感谢您的解决方案!现在接受您的答案:)只是一个后续问题:是否最好使用
os.path.abspath(\uuu文件\uu)
作为所有情况下的默认值,而不是
\uu文件\uu
Path('t.py').absolute().ancestor(2)