我有脚本调用其他脚本文件,但我需要获取当前在该进程中运行的文件的文件路径.
例如,假设我有三个文件.使用execfile:
script_1.py电话script_2.py.script_2.py打电话script_3.py.我怎样才能获得的文件名和路径script_3.py,从内部代码script_3.py,而无需从传递这些信息作为参数script_2.py?
(执行os.getcwd()返回原始起始脚本的文件路径而不是当前文件的.)
我最近将Django从v1.3.1升级到v1.4.
在我以前的settings.py我
TEMPLATE_DIRS = (
os.path.join(os.path.dirname( __file__ ), 'templates').replace('\\', '/'),
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
Run Code Online (Sandbox Code Playgroud)
这将指向/Users/hobbes3/Sites/mysite/templates,但由于Django v1.4将项目文件夹移动到与app文件夹相同的级别,我的settings.py文件现在/Users/hobbes3/Sites/mysite/mysite/而不是/Users/hobbes3/Sites/mysite/.
所以实际上我的问题现在是双重的:
os.path查看上面一级目录__file__.换句话说,我想/Users/hobbes3/Sites/mysite/mysite/settings.py找到/Users/hobbes3/Sites/mysite/templates使用相对路径.template(其具有跨应用程序模板,如文件夹admin,registration在项目等)/User/hobbes3/Sites/mysite水平或在/User/hobbes3/Sites/mysite/mysite?好的...我不知道模块在哪里x,但我知道我需要获得目录两级的路径.
那么,是否有更优雅的方式:
import os
two_up = os.path.dirname(os.path.dirname(__file__))
Run Code Online (Sandbox Code Playgroud)
欢迎使用Python 2和3的解决方案!
如何在没有文件基名的情况下获取文件的路径?
像/a/path/to/my/file.txt- >/a/path/to/my/
尝试.split()没有成功
该Yocto计划允许在大多数的配置文件,但没有内使用相对路径的./build/conf/bblayers.conf文件.什么是阻止使用的任何东西,但对于绝对路径的原因BBLAYERS和BBLAYERS_NON_REMOVABLE变量?
我查看了yocto 2.0版(当前版本)的BitBake用户手册,但这并没有解释推理.我还检查了一些较旧的手动版本,但在谈论bblayers.conf文件或BBLAYERS变量时似乎没有提到推理.同样的文件还包含BBPATH = "${TOPDIR}"至少动态分配的文件,而不是远离根yotco目录.
我最好的猜测是bblayers.conf文件特定于它正在运行的系统.这将使它不适合通过源代码控制在开发人员之间共享,绝对路径会强制人们在收到副本时编辑文件.这似乎不是一个很好的理由,因此这个问题.
我有一个模块需要通过读取配置文件来初始化一些设置。目录结构如下所示:
root\
config\
conf.cfg
src\
module1.py
Run Code Online (Sandbox Code Playgroud)
当我设置相对路径../config/conf.cfg并在其当前目录中运行模块时,我很好。但是当我在其他地方导入模块并在另一个目录中运行它时,我遇到了问题。
我应该如何设置路径,以便模块始终在相同的相对位置(例如,模块所在位置的一个目录)以及我如何确保这适用于下载我的存储库的其他人(他们可能没有根目录)一样的地方)?
我在python中有一个程序打印出有关文件系统的信息......我需要知道将父目录的名称保存到变量中...
例如,如果文件系统的一小部分看起来像这样:
ParentDirectory
ChildDirectory
SubDirectory
如果我在ChildDirectory中,我需要将名称ParentDirectory保存到某个字符串...这里有一些伪代码:
import os
var = os.path.parent()
print var
在旁注,我使用的是Python 2.7.6,所以我需要兼容2.7.6 ......
我有以下目录结构:
E:\<somepath>\PythonProject
-> logs
-> configs
-> source
-> script.py
Run Code Online (Sandbox Code Playgroud)
PythonProject是我的主目录,在该source目录中我有一些 python 脚本。从script.py我想访问 中存在的配置文件configs。在这里,我不想提及完整路径,例如 E:\<somepath>\PythonProject\configs\config.json我将其部署到我不知道路径的系统。所以我决定去
config_file_path = os.path.join(os.path.dirname(文件))
但这给了我源目录的路径,E:\<somepath>\PythonProject\source我只是想要E:\<somepath>\PythonProject这样我以后可以添加configs\config.json访问配置文件的路径。
我怎样才能做到这一点。谢谢
在我的shell脚本中,我有一个文件路径的字符串.
我想删除文件部分,只获取目录的路径.
例如,如果路径是:path="/var/www/index.html"我想得到/var/www/.
是否有与word指示符类似的tail选项?
谢谢
我想获取文件的父目录。此代码不起作用:
projectRoot = os.path.dirname(os.pardir(os.path.abspath(__file__)))
Run Code Online (Sandbox Code Playgroud)
怎么了?
(我正在开发一个 django 应用程序,并在我的应用程序的设置文件中使用这个变量)
谢谢。
罗曼