Zip文件不可寻找

时间:2015-11-16 18:56:16

标签: python python-3.4

我正在尝试对压缩文件进行一些文件操作。我有点困惑为什么文件像对象.open返回一个不可寻找的文件。任何人都可以对此有所了解吗?

这是我正在使用的代码。我怎样才能使file_like可以搜索?

zipped_archive = ZipFile(filepath, mode='r')
file_like = zipped_archive.open(file_name, mode='r')
file_like.seekable() # returns False

3 个答案:

答案 0 :(得分:3)

ZipFile.open方法returns ZipExtFile io.IOBase实施搜索的对象。 False中可搜索的does not{"sets":[{"title":"342","objectId":"1j9p9R1xzM"},{"title":"bkjkjb","objectId":"esHE2WIEkN"}]}

我不确定为什么搜索从未实现,但我猜测在压缩文件中按字节搜索可能因某些原因而难以实现。

答案 1 :(得分:2)

在Python 3.7版(issue

中修复

答案 2 :(得分:0)

一个对我有帮助的非常有用且简单的解决方法是在我使用的文件中添加可搜索的内容:

def add_seekable_to_file(f):
    """
    If file f does not has seekable function -
    add seekable function that will always return true
    Args:
        f: the file
    Returns: the file f with seekable function

    """
    if not hasattr(f, "seekable"):
        # AFAICT all the filetypes that STF wraps can seek
        f.seekable = lambda: True

add_seekable_to_file(datazip.fp)