我想在python中构造一个绝对路径,同时保持对路径分隔符之类的东西的相当遗忘.
edit0:比如有我的文件系统的根目录/etc/init.d(或C:\etc\init.dW32上),我想只从要素建设这个etc和init.d(W32上,我可能还需要一个磁盘ID,如C:)
为了不必担心路径分离器,os.join.path()显然是选择的工具.但似乎这只会创建相对路径:
print "MYPATH:", os.path.join('etc', 'init.d')
MYPATH: etc/init.d
Run Code Online (Sandbox Code Playgroud)
添加虚拟第一元素(例如'')对任何事情没有帮助:
print "MYPATH:", os.path.join('', 'etc', 'init.d')
MYPATH: etc/init.d
Run Code Online (Sandbox Code Playgroud)
使第一个元素绝对显然有帮助,但这种方式违背了使用的想法 os.path.join()
print "MYPATH:", os.path.join('/etc', 'init.d')
MYPATH: /etc/init.d
Run Code Online (Sandbox Code Playgroud)
edit1: using os.path.abspath()只会尝试将相对路径转换为绝对路径.例如,考虑在工作目录中运行以下命令/home/foo:
print "MYPATH:", os.path.abspath(os.path.join('etc', 'init.d'))
MYPATH: /home/foo/etc/init.d
Run Code Online (Sandbox Code Playgroud)
那么,"根"路径的标准跨平台方式是什么?
root = ??? # <--
print "MYPATH:", os.path.join(root, 'etc', 'init.d')
MYPATH: /etc/init.d
Run Code Online (Sandbox Code Playgroud)
edit2:这个问题真的归结为:由于前导斜杠/etc/init.d使得这条路径成为绝对路径,有没有办法以编程方式构造这个前导斜杠?(我不想假设前导斜杠表示绝对路径)
在我的文件系统中,我的工作目录在这里:
C:\ TEMP\A\B\C\d
在b\bb下有文件:tmp.txt
C:\ TEMP\A\B\BB\tmp.txt
如果我想从我的工作目录转到这个文件,我将使用这个路径:
"../../bb/tmp.txt"
Run Code Online (Sandbox Code Playgroud)
如果文件不存在,我想记录完整路径并告诉用户:
"文件C:\ temp\a\b\bb\tmp.txt不存在".
我的问题:
我需要一些功能是转换的相对路径: "../../bb/tmp.txt"绝对: "C:\ A\B\BB\tmp.txt\TEMP"
在我的代码中它应该是这样的:
console.log("The file" + convertToAbs("../../bb/tmp.txt") + " is not exist")
Run Code Online (Sandbox Code Playgroud) 我无法相信PHP没有这个简单问题的简单解决方案.ASP.NET有一个关注此问题的标志,并从根级别开始.这是我的问题:
localhost/MySite
-->Admin
-- Edit.php
-->Class
-- class.EditInfo.php
-->Texts
-- MyInfo.txt
--ShowInfo.php
Run Code Online (Sandbox Code Playgroud)
在class.EditInfo.php中我正在访问MyInfo.txt,所以我定义了一个相对路径"../Texts/MyInfo.txt".然后我在Admin/Edit.php中创建了一个EditInfo对象,并访问了Texts/MyInfo.txt它运行正常.
但是现在我必须在ShowInfo.php中创建一个EditInfo对象并访问Texts/MyInfo.txt,这就出现了问题.因为每当我创建一个objEditInfo并尝试访问MyInfo.txt时,我在我的类中使用相对路径,我得到"文件不存在"错误.
现在我正在寻找与ASP.NET的"〜/ Texts/MyInfo.txt"相当的东西.那里有什么类似的吗?或者我是否必须使用if/else条件设置路径?
更新:
我使用了$ _SERVER ['DOCUMENT_ROOT'].我正在使用我的实际网站所在的子文件夹.所以我不得不使用$ _SERVER ['DOCUMENT_ROOT']."/ mySite"然后添加其余的地址("/Texts/MyInfo.php").
我的问题是:是否有可能在Android中获取资源的绝对路径(在res /文件夹的子目录中)?
我在谷歌上看到这个问题的大多数答案建议获取文件描述符,暗示这是不可能的.
是吗?
编辑:我想这样做的原因是因为我正在编写接受媒体路径并播放它的类.如果我可以传递资源的绝对路径,那么测试会容易得多.
是否有一种简单可靠的方法来确定当前正在执行的JavaScript文件的URL(在网页内)?
我唯一想到的是扫描DOM src以查找所有脚本属性以查找当前文件的引用方式,然后通过应用它来计算绝对URL document.location.任何人都有其他想法,是否有一些我完全忽略的超级简单方法?
更新:通过DOM访问的脚本元素已经具有src包含完整URL 的属性.我不知道它是多么普遍/标准,但是你可以使用getAttribute("src")哪个将返回[X] HTML中的任何原始属性值.
难道真的是不错,attr("href")提供的链接命令在IE7相比,处理得非常不同于其他的浏览器?
假设我在http://example.com/page.html上有一个页面,我有这个HTML:
<a href="#someAnchor" class="lnkTest">Link text</a>
Run Code Online (Sandbox Code Playgroud)
这个jQuery:
var strHref = $(".lnkTest").attr("href");
Run Code Online (Sandbox Code Playgroud)
然后在IE7中strHref变量的值将是,"http://example.com/page.htm#someAnchor"但在其他浏览器中它将是"#someAnchor".
我相信最后提到的案例是最正确的案例,所以它只是IE7是一个坏男孩的案例,还是jQuery中的一个错误?
我在C:\ wamp\www\site\img中有一个图像,我尝试在一个页面中显示它:
<img src="C:\wamp\www\site\img\mypicture.jpg"/>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.文件实际上在那里,如果我尝试用相对路径引用它,我得到了图片
<img src="../img/mypicture.jpg">
Run Code Online (Sandbox Code Playgroud)
错误在哪里?我错过了什么?再次谢谢你们!
我编写了一个Java servlet,我想在不同服务器上的许多Tomcat实例上安装它.servlet使用一些静态文件,这些文件在WEB-INF下用war文件打包.这是典型安装中的目录结构:
- tomcat
-- webapps
--- myapp
---- index.html
---- WEB-INF
----- web.xml
----- classes
------ src
------- .....
----- MY_STATIC_FOLDER
------ file1
------ file2
------ file3
Run Code Online (Sandbox Code Playgroud)
我如何知道MY_STATIC_FOLDER的绝对路径,以便我可以读取静态文件?
我不能依赖"当前文件夹"(我在新文件(".")中得到的)因为它取决于Tomcat服务器的启动位置,这在每个安装中都是不同的!
resources servlets relative-path working-directory absolute-path
在create-next-appNext.js 应用程序中,我想将pages根目录中的文件夹移动到一个src文件夹中。我添加了jsconfig.json代码(如下),但是现在我收到错误消息“404 | 找不到此页面。” 有人有任何见解吗?(抱歉,网络开发初学者)
{
"compilerOptions": {
"baseUrl": "src"
}
}
Run Code Online (Sandbox Code Playgroud) 在javascript中,如何获取当前网址的相对路径?
例如 http://www.example.com/test/this?page=2
我只想要 /test/this?page=2