Запустите bash script с помощью python - TypeError: bufsize должен быть целым числом

Я пытаюсь написать файл python, который содержит файл wxtrac tar в python.

Как я понимаю, subprocess является подходящим инструментом для этой миссии.

Я пишу следующий код:

from subprocess import call


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


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

Когда выводится tar файл, расположенный в /root/tryit/.

Когда я запустил его, я получаю следующее сообщение:

TypeError: bufsize must be an integer

Можно ли использовать команду tar с помощью этого инструмента?

Ответ 1

Вы должны указать команду как список. Кроме того, отсутствует главный параметр (x).

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

BTW, Python имеет tarfile модуль:

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