Python os.path.relpath 行为

2023-12-25

我有一个目录bar在目录内foo, 带文件foo_file.txt在目录中foo和文件bar_file.txt在目录中bar; i.e.

computer$ ls
foo/
computer$ ls foo/
bar/  foo_file.txt
computer$ ls foo/bar/
bar_file.txt

使用Pythonos.path.relpath http://docs.python.org/2/library/os.path.html#os.path.relpath功能,我期望:

os.path.relpath('foo/bar/bar_file.txt', 'foo/foo_file.txt')

给我:

'bar/bar_file.txt'

然而,它实际上给了我:

'../bar/bar_file.txt'

为什么是这样?有没有一种简单的方法来获得我想要的行为?

编辑:这是在带有 Python 2.7.3 的 Linux 上


os.path.relpath()假设它的参数是目录。

>>> os.path.join(os.path.relpath(os.path.dirname('foo/bar/bar_file.txt'),
        os.path.dirname('foo/foo_file.txt')),
        os.path.basename('foo/bar/bar_file.txt'))
'bar/bar_file.txt'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python os.path.relpath 行为 的相关文章

随机推荐

  • 绘图区域填充以防止符号被截断。 (核心剧情)

    在 iOS 的 Core Plot 中 是否有一种方法可以向绘图区域 而不是绘图区域框架 添加某种填充 使用绘图符号时 如果符号落在框架的轴线或边界上 则可能会被截断 诚然 我理解为什么在绘制非零大小的圆圈作为数据符号时会出现这种情况 但我
  • 在哪里可以找到适用于 Android/iPhone 的免费中文手写识别引擎?

    我有兴趣开发一些在智能手机上使用中文手写识别软件的东西 在开始之前 我想检查一下是否有任何已经开发好的免费 用于开源和商业应用程序 工具可供使用 我尝试自行搜索 但找不到任何专门用于 iPhone 或 Android 的软件 有没有免费使用
  • 用于组合搜索和排除的正则表达式

    概述 我正在尝试将两个 REGEX 查询合并为一个 d d d d 10 169 我将其写为两部分查询 第一部分将在文本块中隔离 IP 在复制并粘贴此内容后 我选择所有内容 但不包括 10 或 169 问题 看来我把这个问题过于复杂化了 有
  • 是否可以从数组创建打字稿类型?

    我经常使用诸如 export type Stuff something else export const AVAILABLE STUFF Stuff something else 这样我就可以使用类型Stuff 并在需要时迭代所有可用的内
  • 我可以在带有phonegap的移动设备上使用html5的拖放功能吗?

    我需要使用phonegap 拖放到移动设备 我尝试使用 jquery mobile 和 jquery ui jquery touchpunch 但 html5 对我来说更好 是否可以 谢谢 弗朗西斯科 EDIT 这是一个可拖动的图像 a h
  • 在视图控制器上添加导航栏

    我是 iOS 新手 我想在我的视图控制器上添加一个导航栏 左侧有 2 个按钮 右侧有订阅按钮 我不知道如何做到这一点 到目前为止 我刚刚从界面生成器添加了一个导航栏 在 h 文件中为其创建了一个 强 引用 并进行了以下编码 navBar U
  • 按钮内的复选框?

    有什么方法可以在按钮内添加复选框吗 目前我有这个解决方案 div div
  • psycopg2:光标已关闭

    我在用psycopg2 2 6 1 我有很多需要按顺序执行的查询 conn psycopg2 connect database redshift database user redshift user password os environ
  • 将 .NET Core Identity 与 API 结合使用

    我创建了一个 API 并从同一 API 设置了 JWT 身份验证 我选择不使用 IdentityServer4 我通过这样做services AddAuthentication 然后我在控制器中创建了令牌并且它起作用了 不过我现在想添加注册
  • 无法对 DataGrid 中的日期列进行排序

    我添加了一个日期列DatePicker to my DataGrid并且无法通过单击来对该列进行排序Header 我想这与我的日期格式有关 但我找不到解决方案 我的代码是
  • 在传递到 Web 服务之前将 jqGrid rowNum 从 ALL 更改为 -1 的最佳方法

    我正在寻找允许用户选择在 jqGrid 中显示所有记录的最佳方法 我知道为 rows 参数传递的 1 值表示 ALL 但我希望单词 ALL 而不是 1 出现在 rowList 选择元素中 即 行列表 15 50 100 全部 我正在将网格请
  • 改造android的Proguard规则

    我正在对 Android 应用程序实施混淆器规则 当我编译该 apk 时 改造类仍然没有改变 请看一下我的 proguard 文件 并请指导我哪里缺少规则 keep public class org slf4j keep public cl
  • 如何在Tab布局中设置Tab宽度?

    我正在尝试创建一个tab layout其中有两个tabs 当我在小型手机上运行该应用程序时tab layout看起来不错 但是当我运行相同的应用程序时Tablet它显示如下 在平板电脑上看起来像这样 我希望每个选项卡占据整个空间 两端没有任
  • Javascript 验证 HTML 表单中的 X 个字段

    我有一个表单 其中包含大约 10 个文本条目 用户 地址 电子邮件等 大约有 50 多个条目是数量条目 用户选择该条目的 2 倍 该条目的 5 倍 现在 我从其他人那里继承了这张表格 现在我有责任在客户要求时保持最新状态 我不想全部重写 但
  • 如何将 core-js Map 导入 angular-cli webpack 生成的应用程序

    1 0 0 beta 11 webpack 现在使用 core js 进行 polyfill 我正在尝试导入地图以在我的应用程序中使用 import Map from core js es6 map import Map from core
  • 为什么合并 PDF 会使文件大小变大?

    我正在尝试将各种 PDF 拆分在一起 它们的文字不多 偶尔会有图像 举例来说 我有两个 PDF 1 4Mb 和 740kb 当我将它们合并时 它们会膨胀到 6Mb 我尝试过脚本化组合和手动附加 结果相同 所以我猜测这是一个根本问题 对为什么
  • 上下文在 Code First 模式下使用,其中的代码是从 EDMX 文件生成的,用于 Database First 或 Model First 开发

    我正在尝试将最初使用 EF4 开发的项目迁移到 EF6 以利用 EF6 事务管理 我面临的问题是该项目是使用数据库优先方法创建的 所以当我使用类似的代码时context Database UseTransaction 我遇到以下错误 The
  • Sublime text:如何将键绑定添加到 hex_viewer 包命令

    我已经在 sublime text 3 上安装了 Hex Viewer 包 为了切换它 我使用 ctrl shift p 打开命令面板 然后我搜索 hex 并选择包的命令来切换十六进制视图 我想知道如何将键绑定到特定的包命令 我知道键绑定配
  • IISExpress 用户界面 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚下载并安装了 IIS Express 从命令行运行它一切正常 但是我如何配置它的选项 是否有一个
  • Python os.path.relpath 行为

    我有一个目录bar在目录内foo 带文件foo file txt在目录中foo和文件bar file txt在目录中bar i e computer ls foo computer ls foo bar foo file txt compu