如何通过“其他”项目文件的相对路径获取绝对路径,而不是项目中的那些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 “,非退出文件路径。)
如何实现这一目标?
答案 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