Python subprocess.call tar命令稍后使用未压缩的文件

时间:2017-08-30 09:38:05

标签: python python-2.7 postgresql subprocess

我正在尝试解压缩扩展名为.gz的tar文件

status = subprocess.call('tar -zvxf %s -C %s 2> /dev/null' % (zipped_tar_file,data_path), shell=True)

在此声明后不久,我又打了一个电话 -

status = subprocess.call('psql -q -v PATH=%s -f %s -h %s -p %d %s' %(some params)

第二个语句告诉postgres使用第一个命令提取的一些文件。我在postgres中得到一个文件不存在的错误。

看起来tar命令仍在运行,而第二个语句已经启动,而postgres找不到尚未提取的所需文件。

ERROR:  could not open file "path/filename.csv" for reading: No such file or directory

filename.csv是要从tarball中提取的文件之一。

文件有点沉重(几兆字节)

这是使用subprocess.call的正确方法吗?

1 个答案:

答案 0 :(得分:0)

由于subprocess.call()需要花时间执行,因此可以在执行两个命令之间添加时间延迟。

您可以查看:Python subprocess timeout?以获取更详细的答案。