如何通过“其他”项目文件的相对路径获取绝对路径?

时间:2016-04-13 07:00:46

标签: python

如何通过“其他”项目文件的相对路径获取绝对路径,而不是项目中的那些python文件,如Java?

D:\Workspaces\ABCPythonProject\

|- src
|   |-- com/abc
|       |-- conf.py
|       |-- abcd.py
|       |-- defg.py
|       |-- installation.rst
|- resources
|   |-- a.txt
|   |-- b.txt
|   |-- c.jpg

例如,我想像'abcd.py'这样的python代码中使用'resource / a.txt'之类的变量以简单的方式访问'a.txt'或'b.txt',就像Java项目一样在Java中。

简而言之,我想通过' resources \ a.txt '获得' D:\ Workspaces \ ABCPythonProject \ resources \ a.txt ',这是非常的在Java中很容易做到,但在Python中看起来非常难以实现。

(如果我使用内置的python方法,如'os.filePath.join(os.filePath.dirname(_ file __),'resources / a.txt')',os.path.dirname('resources / a .txt'),os.path.abspath('resources / a.txt'),...等,结果总是“ D:\ Workspaces \ ABCPythonProject \ com \ abc \ resources \ a。 txt “,非退出文件路径。)

如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

您可以使用这些内置的python方法,但是如果您在../src/com/abc中调用脚本。您的In somephpfile.php $sql=mysql_query("INSERT INTO stats (id,isclicked) VALUES ("",'true'); echo "success";函数将在当前目录中执行。您当前的目录是您的执行目录(Python脚本目录!!) 首先,您应该更改目录以访问.txt文件,因为python不会在您的" ABCPythonProject"中执行。目录。 显然你不能以这种方式访问​​资源/ a.txt,因为你必须改变目录" ABCPythonProject"检查这条路。

os.filePath()

您可以查看目前所在的目录:

os.chdir("D:\Workspaces\ABCPythonProject")

答案 1 :(得分:0)

这个样本可能会受益于一点清洁,但它可以完成这项工作。

import os
k = os.path.abspath(os.path.join(".", os.pardir)) # one level up
print k
k = os.path.abspath(os.path.join(k, os.pardir))   # two levels up
print k
k = os.path.abspath(os.path.join(k, 'resources/a.txt'))   # two levels down
print k  

从目录C:\Users\Philip\AppData\Local\Temp\src\com开始输出

C:\Users\Philip\AppData\Local\Temp\src
C:\Users\Philip\AppData\Local\Temp
C:\Users\Philip\AppData\Local\Temp\resources\a.txt