我一直在尝试通过使用os.system()和调制解调器(网络连接不良)通过curl命令以编程方式下载几个zip文件,并接收内部0字节的文件。
每次成功下载后,我总是使用'zip -T'命令验证zip文件,但是在解压缩之后,有些文件的字节数为0。下面是我的代码:
os.system("curl -sL --output 'master.zip' https://github.com/xxx/project/archive/master.zip")
verify = os.popen("zip -T master.zip").read()
if "OK" in verify:
os.system("unzip -o master.zip")
反正有没有验证这种情况不会发生?
答案 0 :(得分:0)
如果我理解正确,那么您希望避免提取包含一些空文件的存档文件,对吗?
如果是这种情况,那么我建议您使用 unzip -l </ em> 来详细说明归档文件包含的文件。例如:
$ unzip -l test.zip
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
0 2019-07-02 18:02 test/
0 2019-07-02 18:00 test/empty
16 2019-07-02 18:01 test/something
--------- -------
16 3 files
此命令的确也列出了所有文件的长度,并且从python开始,只需几行代码即可解析并确定档案中是否有空文件。请注意,根据解压缩,目录的大小也为0,这也可以在示例中看到。