2017-08-30 70 views
0

我想解壓縮tar文件以.gz擴展這一說法後的Python subprocess.call 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正確的方式(幾兆字節的hundered)?

回答

0

由於subprocess.call()需要時間執行,所以可以在執行兩個命令之間添加時間延遲。

您可以檢查:Python subprocess timeout?以獲得更詳細的答案。