使用 python 运行 bash 脚本 - TypeError: bufsize must be an integer
Posted
技术标签:
【中文标题】使用 python 运行 bash 脚本 - TypeError: bufsize must be an integer【英文标题】:Run bash script with python - TypeError: bufsize must be an integer 【发布时间】:2014-11-16 14:19:37 【问题描述】:我正在尝试编写 python 文件,即 python 中的 wxtrac tar 文件。
据我了解,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 命令吗?
【问题讨论】:
【参考方案1】:您应该将命令指定为列表。除此之外,缺少主要选项 (x
)。
def tarfile(path):
call(["tar", "xvf", path])
顺便说一句,Python 有一个tarfile
module:
import tarfile
with tarfile.open("/root/tryit/output.tar") as tar:
tar.extractall() # OR tar.extractall("/path/to/extract")
【讨论】:
以上是关于使用 python 运行 bash 脚本 - TypeError: bufsize must be an integer的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法运行来自 bash 的 zip 文件中的 python 脚本?
使用 python 运行 bash 脚本 - TypeError: bufsize must be an integer