Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python os.path.sep是否影响tarfile模块?_Python_Windows_Tarfile - Fatal编程技术网

Python os.path.sep是否影响tarfile模块?

Python os.path.sep是否影响tarfile模块?,python,windows,tarfile,Python,Windows,Tarfile,Pythontarfile.tarfileobject中使用的路径分隔符是“/”而不考虑平台,还是Windows上的反斜杠 我基本上从未接触过Windows,但我希望我正在编写的代码能够与它兼容,如果可以的话。不幸的是,我没有要测试的Windows主机。快速测试告诉我,始终使用(正)斜杠 事实上,tar格式使用斜杠(尝试查看十六进制转储)将每个文件的完整路径存储为单个字符串,python只读取该完整路径而不进行任何修改。同样,在提取时,python硬将斜杠替换为本地分隔符(请参见TarFile.

Python
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上,python
tarfile
使用反斜杠。afaik你必须做类似于
tarinfo=tarfile.tarinfo(os.path.join(…).replace('\','/'))的事情