0

abc.py在工作区目录下有一个文件。

我正在使用os.listdir('/home/workspace/tests')inabc.py列出所有文件(test1.pytest2.py...)

我想生成路径 '/home/workspace/tests',甚至不想对其'/home/workspace'进行硬编码。

我试过了os.getcwd()os.path.dirname(os.path.abspath(____file____))但这会生成运行测试脚本的路径。

怎么办?

4

2 回答 2

0

我想你是在问如何获得相对路径而不是绝对路径。

绝对路径类似于:“/home/workspace”

相对看起来像下面的“./../workspace”

您应该构建从脚本所在的目录 (/home/workspace/tests) 到您要访问的目录 (/home/workspace) 的相对路径,这意味着,在这种情况下,在目录中更上一层楼树。

你可以通过执行: os.path.dirname(os.path.join("..", os.path.abspath( __file__ )))

如果您向上两步和一步向下工作空间目录,可能会获得相同的结果: os.path.dirname(os.path.join("..", "..", "workspace", os.path.绝对路径(__file__)))

通过这种方式,您实际上可以访问任何目录而不知道它的绝对路径,而只知道它相对于您执行的文件的位置。

于 2014-05-21T14:01:14.387 回答
0

您可以引用与您没有任何关系并且您不想对其进行硬编码的特定文件夹的唯一方法是将其作为参数传递给脚本(搜索:命令行参数

于 2014-05-21T13:05:49.203 回答