当前位置:  开发笔记 > 编程语言 > 正文

is_tarfile()为空文件返回True

如何解决《is_tarfile()为空文件返回True》经验,为你挑选了0个好方法。

编辑1

嗯,我接受tar尊重空文件的答案......但在我的系统上:

$ touch emptytar
$ tar -tf emptytar 
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

也许我有一个非规范版本?

$ tar --version
tar (GNU tar) 1.22
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

大家好,

我正在测试一些逻辑来处理用户上传TAR文件.当我向tarfile.is_tarfile()它返回一个空白文件时返回True,这不是我所期望的:

$ touch tartest
$ cat tartest
$ python -c "import tarfile; print tarfile.is_tarfile('tartest')"
True

如果我在文件中添加一些文本,它会返回False,这是我所期望的:

$ echo "not a tar" > tartest
$ python -c "import tarfile; print tarfile.is_tarfile('tartest')"
False

我可以在开始添加一个检查,检查是否有长度为零的文件,但基于对文档的tarfile.is_tarfile(name),我认为这是不必要的:

如果name是tar归档文件,则返回True,tarfile模块可以读取.

我甚至检查了源码tarfile.py,我可以看到它正在检查标题块,但我不完全理解它是如何评估这些块的.

我误读了文档,因此设定了不公平的期望吗?

谢谢
Zachary

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有