在python脚本中读取tar文件内容而不对其进行解压缩

发布于 2021-01-29 19:35:25

我有一个tar文件,其中包含许多文件。我需要编写一个python脚本,该脚本将读取文件的内容并提供总数字符的计数,包括字母,空格,换行符的总数,所有内容,而无需解压缩tar文件。

关注者
0
被浏览
102
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用 getmembers()

    >>> import  tarfile
    >>> tar = tarfile.open("test.tar")
    >>> tar.getmembers()
    

    之后,您可以extractfile()用来将成员提取为文件对象。只是一个例子

    import tarfile,os
    import sys
    os.chdir("/tmp/foo")
    tar = tarfile.open("test.tar")
    for member in tar.getmembers():
        f=tar.extractfile(member)
        content=f.read()
        print "%s has %d newlines" %(member, content.count("\n"))
        print "%s has %d spaces" % (member,content.count(" "))
        print "%s has %d characters" % (member, len(content))
        sys.exit()
    tar.close()
    

    对于f上面示例中的文件对象,可以使用read()readlines()等等。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看