web-dev-qa-db-ja.com

python --TypeError:bufsizeは整数である必要があります

python file、Pythonのwxtractarファイルを書き込もうとしています。

私が理解しているように、subprocessはこのミッションに適したツールです。

私は次のコードを書きます:

from subprocess import call


def tarfile(path):
   call(["tar"], path)


if __name__ == "__main__":
    tarfile("/root/tryit/output.tar")

出力が/root/tryit/にあるtarファイルの場合。

実行すると、次のメッセージが表示されます。

TypeError: bufsize must be an integer

このツールでtarコマンドを使用できますか?

13
Or Smith

コマンドをリストとして指定する必要があります。そのほか、メインオプション(x)がありません。

def tarfile(path):
    call(["tar", "xvf", path])

ところで、Pythonには tarfileモジュール

import tarfile
with tarfile.open("/root/tryit/output.tar") as tar:
    tar.extractall()  # OR tar.extractall("/path/to/extract")
25
falsetru