【问题标题】:Does os.path.sep affect the tarfile module?os.path.sep 会影响 tarfile 模块吗?
【发布时间】:2015-07-24 00:08:15
【问题描述】:

在 Python tarfile.TarFile 对象中使用的路径分隔符是“/”而不考虑平台,还是 Windows 上的反斜杠?

我基本上从不接触 Windows,但如果可以的话,我希望我编写的代码能够与它兼容。不幸的是,我没有要测试的 Windows 主机。

【问题讨论】:

    标签: python windows tarfile


    【解决方案1】:

    快速测试告诉我始终使用(正向)斜杠。

    事实上,tar 格式将每个文件的完整路径存储为单个字符串,使用斜杠(尝试查看十六进制转储),python 只是读取该完整路径而无需任何修改。同样,在提取时,python 用本地分隔符硬替换斜杠(请参阅TarFile._extract_member)。

    ...这让我觉得肯定有一些不符合 Windows 的 tar 实现会创建带有反斜杠作为分隔符的 tar 文件!?

    【讨论】:

    • 错了,在windwos上,pythons tarfile使用反斜杠.afaik你必须像tarinfo = tarfile.TarInfo(os.path.join(...).replace('\\', '/'))一样做某事
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 2018-11-04
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多