1. ホーム
  2. python

[解決済み] tar ファイルの内容を tar を解凍せずに読み込む python スクリプト

2023-02-23 12:42:23

質問

私はその中にいくつかのファイルを持っているtarファイルを持っています。 私は、ファイルの内容を読み取り、文字、スペース、改行文字、すべての総数を含む総文字数を、tarファイルを解凍せずに提供するPythonスクリプトを書く必要があります。

どのように解決するのですか?

を使用することができます。 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() など。