我有一个名为“test.py”的脚本,并且引用了一个名为“cfg.yaml”的配置文件。这两个驻留在同一个名为“test/scripts”的目录中。在Python中使用相对和绝对路径的困惑
test/scripts/test.py
test/script/cfg.yaml
现在我正在写“测试/数据1 /数据2”之称task.sh
从task.sh内内bash脚本,我想要的python脚本
通话test.sh内容如下:
#!/bin/sh
python ../../scripts/test.py
test.py打开和读取cfg.yaml像打开( “cfg.yaml”),但是当test.sh被调用时,它失败,因为“CFG。 yaml“不被相对pa引用日。我该如何解决这个问题?
1.您可以从test/scripts运行test.py,2.在test.py中,您可以将cfg文件的路径更改为'../../scripts/test.py'或3.您可以使用cfg文件的绝对路径。发生这种情况是因为python解释器正在从test/data1/data2中调用 – rivu 2014-12-11 01:00:13
相对路径是相对于当前工作目录的,而不是相对于正在执行的文件的位置 – mehtunguh 2014-12-11 02:19:26