标签: relative-path

从相对路径导入模块

如何根据相对路径导入Python模块?

例如,如果dirFoo包含Foo.pydirBar,和dirBar包含Bar.py,我怎么导入Bar.pyFoo.py

这是一个直观的表示:

dirFoo\
    Foo.py
    dirBar\
        Bar.py
Run Code Online (Sandbox Code Playgroud)

Foo希望包括Bar,但重组文件夹层次结构不是一种选择.

python relative-path python-import

749
推荐指数
16
解决办法
88万
查看次数

如何在Python中获取绝对文件路径

给定一个路径"mydir/myfile.txt",如何在Python中找到相对于当前工作目录的文件的绝对路径?例如在Windows上,我最终可能会:

"C:/example/cwd/mydir/myfile.txt"
Run Code Online (Sandbox Code Playgroud)

python path relative-path absolute-path

653
推荐指数
9
解决办法
77万
查看次数

相对进口数十亿次

我来过这里:

还有很多我没有复制的网址,有些在SO上,有些在其他网站上,当我认为我有快速解决方案的时候.

永远反复出现的问题是:使用Windows 7,32位Python 2.7.3,如何解决这个"非包装中尝试相对导入"的消息?我在pep-0328上构建了一个包的精确副本:

package/
    __init__.py
    subpackage1/
        __init__.py
        moduleX.py
        moduleY.py
    subpackage2/
        __init__.py
        moduleZ.py
    moduleA.py
Run Code Online (Sandbox Code Playgroud)

我确实在适当的模块中创建了名为spam和eggs的函数.当然,它没有用.答案显然在我列出的第4个网址中,但这对我来说都是校友.我访问过的其中一个网址上有此回复:

相对导入使用模块的name属性来确定模块在包层次结构中的位置.如果模块的名称不包含任何包信息(例如,它设置为'main'),则解析相对导入,就像模块是顶级模块一样,无论模块实际位于文件系统的哪个位置.

上面的反应看起来很有希望,但它对我来说都是象形文字.所以我的问题是,如何让Python不回归"尝试非包装中的相对导入"?有一个答案涉及-m,据说.

有人可以告诉我为什么Python会给出错误信息,非包装意味着什么!,为什么以及如何定义"包裹",并且准确的答案足以让幼儿园儿童理解.

编辑:导入是从控制台完成的.

python import relative-path python-2.7

564
推荐指数
8
解决办法
17万
查看次数

使用Bash在给定当前目录的情况下将绝对路径转换为相对路径

例:

absolute="/foo/bar"
current="/foo/baz/foo"

# Magic

relative="../../bar"
Run Code Online (Sandbox Code Playgroud)

我如何创造魔法(希望不是太复杂的代码......)?

bash shell path relative-path absolute-path

236
推荐指数
14
解决办法
11万
查看次数

Python中的相对路径

我正在构建一个简单的帮助脚本,用于将代码库中的几个模板文件复制到当前目录.但是,我没有存储模板的目录的绝对路径.我确实有一个来自脚本的相对路径,但是当我调用脚本时,它将其视为相对于当前工作目录的路径.有没有办法指定这个相对url来自脚本的位置?

python path relative-path

204
推荐指数
9
解决办法
34万
查看次数

在Python中使用代码存储库时如何引用资源的相对路径

我们正在使用一个代码存储库,它部署在Windows和Linux上 - 有时在不同的目录上.项目中的一个模块应该如何引用项目中的一个非Python资源(CSV文件等)?

如果我们做类似的事情:

thefile=open('test.csv')
Run Code Online (Sandbox Code Playgroud)

要么:

thefile=open('../somedirectory/test.csv')
Run Code Online (Sandbox Code Playgroud)

仅当脚本从一个特定目录或目录的子集运行时,它才会起作用.

我想做的是:

path=getBasePathOfProject()+'/somedirectory/test.csv'
thefile=open(path)
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?可能吗?

python path relative-path

179
推荐指数
5
解决办法
17万
查看次数

Crontab - 在目录中运行

我想在root crontab中设置一个每天运行的工作.但我希望它从特定目录执行它,以便它可以找到它需要的所有文件,因为应用程序有一堆相对路径.

无论如何,我可以告诉crontab从特定目录运行吗?

unix directory crontab relative-path

153
推荐指数
2
解决办法
7万
查看次数

从相对路径和/或文件名解析绝对路径

Windows批处理脚本中是否有一种方法可以从包含文件名和/或相对路径的值返回绝对路径?

鉴于:

"..\"
"..\somefile.txt"
Run Code Online (Sandbox Code Playgroud)

我需要相对于批处理文件的绝对路径.

例:

  • "somefile.txt"位于"C:\ Foo"中
  • "test.bat"位于"C:\ Foo\Bar"中.
  • 用户在"C:\ Foo"中打开命令窗口并调用 Bar\test.bat ..\somefile.txt
  • 在批处理文件中,"C:\ Foo\somefile.txt"将派生自 %1

windows batch-file relative-path absolute-path

147
推荐指数
8
解决办法
22万
查看次数

在ASP.NET中的外部C#类中使用Server.MapPath

我试图获取C#类中某些文件的绝对路径. Server.MapPath当然对ASPX及其代码隐藏页面很有用,但在另一个类文件中不存在.我试过HostingEnvironment.MapPath(),但是抱怨说不允许相对虚拟路径.有什么想法吗?

System.Web 已导入.

c# asp.net file path relative-path

127
推荐指数
3
解决办法
21万
查看次数

BAT脚本中的相对路径

这是我的USB驱动程序上自己的程序文件夹:

Program\
     run.bat
     bin\
         config.ini
         Iris.exe
         library.dll
         etc.
Run Code Online (Sandbox Code Playgroud)

我想用run.bat启动我的Iris.exe

我不能用这个:F:/Program/bin/Iris.exe就像一个快捷方式,因为有时,它不会给我F驱动程序名称(E,G)

我需要写入bat文件才能像魅力一样工作?我在BAT文件中尝试过:

"\bin\Iris.exe"
Run Code Online (Sandbox Code Playgroud)

它不工作:(

cmd batch-file relative-path drive

118
推荐指数
5
解决办法
15万
查看次数