python写绝对路径时可能因为路径分隔符的原因导致在不同系统上无法通用,怎么能实现通用的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python写绝对路径时可能因为路径分隔符的原因导致在不同系统上无法通用,怎么能实现通用的?相关的知识,希望对你有一定的参考价值。
这个的话你可以用os模块的os.path.join(path1, path2)实现拼接的绝对路径,这样子是通用的 参考技术A 路径分隔符 windows 和 linux是不同的 建议使用File.separator 代替你自己手写的"/" or "\'Python ZipFile 路径分隔符
【中文标题】Python ZipFile 路径分隔符【英文标题】:Python ZipFile path separators 【发布时间】:2011-11-18 02:09:36 【问题描述】:如果我使用 Python ZipFile 库解压缩 Zip 文件,该文件是在 Windows 上创建的,但我的代码在类 Unix 上运行,路径分隔符是否总是 Unix 样式?
【问题讨论】:
似乎必须如此,因为它没有存储为字符串。我当然希望如此:) 你希望如此!但是当你与电脑打交道时,希望与任何事情都无关...... 【参考方案1】:在内部,ZipFile 根据zip file specification 的要求存储正斜杠。
在外部,它们使用os.sep 进行翻译,因此它将与给定平台上通常预期的内容相匹配。
代码参考:
http://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l295 http://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l1046【讨论】:
谢谢!我认为这是真的,但最好有证据。 请注意,这种转换仅适用于在 ZIP 存档中创建条目时。访问现有成员时(例如使用zip_file.read('dir/file.txt')
)必须始终使用斜杠。
+1 用于指向 zip 文件规范的链接。谢谢!!!以下是相关部分: 4.4.17 文件名:(变量) 4.4.17.1 文件名,带有可选的相对路径。存储的路径不得包含驱动器或设备号,或前导斜杠。所有斜杠必须是正斜杠“/”而不是反斜杠“\”,以便与 Amiga 和 UNIX 文件系统等兼容。如果输入来自标准输入,则没有文件名字段。以上是关于python写绝对路径时可能因为路径分隔符的原因导致在不同系统上无法通用,怎么能实现通用的?的主要内容,如果未能解决你的问题,请参考以下文章