Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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 3.x MacOS PostScript Typ 1字体在使用Python make_archiv压缩后为0字节_Python 3.x_Macos_Zip_Shutil - Fatal编程技术网

Python 3.x MacOS PostScript Typ 1字体在使用Python make_archiv压缩后为0字节

Python 3.x MacOS PostScript Typ 1字体在使用Python make_archiv压缩后为0字节,python-3.x,macos,zip,shutil,Python 3.x,Macos,Zip,Shutil,我有一堆旧的Mac PostScript Typ 1字体,我想将它们压缩到zip文件中。 压缩文件夹后,其中的字体,我解压缩压缩文件和所有字体内显示0字节,不再可用 在压缩之前,它们看起来是这样的: 这样,压缩后: 我的代码: shutil.make_archive(ordner, 'zip', ordner) 使用nativ MacOS存档程序压缩字体目录不会损坏字体 更新:我试图通过命令行(终端)使用原始Unix工具压缩文件。使用此代码: zip -r -X compressed_di

我有一堆旧的Mac PostScript Typ 1字体,我想将它们压缩到zip文件中。 压缩文件夹后,其中的字体,我解压缩压缩文件和所有字体内显示0字节,不再可用

在压缩之前,它们看起来是这样的:

这样,压缩后:

我的代码:

shutil.make_archive(ordner, 'zip', ordner)
使用nativ MacOS存档程序压缩字体目录不会损坏字体

更新:我试图通过命令行(终端)使用原始Unix工具压缩文件。使用此代码:

zip -r -X compressed_directory.zip directory_to_be_compressed/
我得到了同样的结果。 因此,我认为我遇到了一个问题,这个问题存在于MacOS的更深层次

更新:根据benwiggy的建议,我在没有-X标志的情况下尝试了以下操作。同样的结果:

 zip -r compressed_directory.zip directory_to_be_compressed/

旧的Type 1 PostScript字体使用MacOS资源叉存储其数据。Unix工具并不总是能够很好地处理文件系统的这一部分,除非它们是显式地编写来处理Mac资源分叉的

MacOs CLI中的捆绑zip实用程序默认情况下应包括资源分叉(从10.3开始)。python util可能无法访问Mac友好实用程序


zip命令使用-X标志,故意排除扩展文件属性和其他内容,其中可能包括资源分叉。

在对旧MacOS资源分叉进行进一步研究和大量测试之后,如果不使用本机的“Archiv实用工具”或其他第三方工具(如Keka),我无法将旧MacOS Post Script Type 1字体的资源叉包含到.zip文件中。Python
shutil.make_archiv()
命令不包含此类型文件的资源叉,Unix命令行工具
zip
也不包含此类型文件的资源叉。 我在Xhalees的博客上找到了一些关于这个主题的有用信息(非常好和全面的解释):

我提出的解决方案是使用
os模块
在Python内部调用MacOS Terminal
ditto
命令,并让它完成工作

import os
os.system("ditto -ck --rsrc --keepParent directory_to_zip zipped_file.zip")

谢谢你,你的回答让我思考一下,做一些谷歌的工作,并得出了这篇优秀的文章:我认为我对资源叉有一些问题,这些问题将不会包含在unix或python工具的zip文件中。我必须做更多的搜索,如果我找到了解决方案,我会告诉你。