Python os.path.sep是否影响tarfile模块?
PythonPython os.path.sep是否影响tarfile模块?,python,windows,tarfile,Python,Windows,Tarfile,Pythontarfile.tarfileobject中使用的路径分隔符是“/”而不考虑平台,还是Windows上的反斜杠 我基本上从未接触过Windows,但我希望我正在编写的代码能够与它兼容,如果可以的话。不幸的是,我没有要测试的Windows主机。快速测试告诉我,始终使用(正)斜杠 事实上,tar格式使用斜杠(尝试查看十六进制转储)将每个文件的完整路径存储为单个字符串,python只读取该完整路径而不进行任何修改。同样,在提取时,python硬将斜杠替换为本地分隔符(请参见TarFile.
tarfile.tarfile
object中使用的路径分隔符是“/”而不考虑平台,还是Windows上的反斜杠
我基本上从未接触过Windows,但我希望我正在编写的代码能够与它兼容,如果可以的话。不幸的是,我没有要测试的Windows主机。快速测试告诉我,始终使用(正)斜杠 事实上,tar格式使用斜杠(尝试查看十六进制转储)将每个文件的完整路径存储为单个字符串,python只读取该完整路径而不进行任何修改。同样,在提取时,python硬将斜杠替换为本地分隔符(请参见
TarFile.\u extract\u member
)
。。。这让我想到,确实有一些不符合tar for Windows的实现,它们创建了带有反斜杠作为分隔符的tar文件 快速测试告诉我总是使用(正)斜杠 事实上,tar格式使用斜杠(尝试查看十六进制转储)将每个文件的完整路径存储为单个字符串,python只读取该完整路径而不进行任何修改。同样,在提取时,python硬将斜杠替换为本地分隔符(请参见
TarFile.\u extract\u member
)
。。。这让我想到,确实有一些不符合tar for Windows的实现,它们创建了带有反斜杠作为分隔符的tar文件 这是错误的,在windwos上,python
tarfile
使用反斜杠。afaik你必须做类似的事情,比如tarinfo=tarfile.tarinfo(os.path.join(…).replace('\\','/'))
在windwos上,pythontarfile
使用反斜杠。afaik你必须做类似于tarinfo=tarfile.tarinfo(os.path.join(…).replace('\','/'))的事情