一部のファイルを解析して出力ファイルを生成するスクリプトをPython
呼び出すスクリプトがあります。Perl
これらの出力ファイルはMySQL
、Python スクリプトを使用してデータベースにアップロードされます。Perl スクリプトは5-7 mins
いくつかのファイルを解析し、Python がアップロードに使用する出力ファイルを生成します。
Python スクリプトは次のようになります。
import subprocess
pipe = subprocess.Popen(["perl", "./parser.pl"], stdin=subprocess.PIPE)
pipe.stdin.close()
#Now, load the output files from parser.pl to database.
sql01 = """LOAD DATA LOCAL INFILE 'sequence.parsed' INTO TABLE nasequenceimp FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';"""
try:
c.execute(sql01)
conn.commit()
except StandardError, e:
print e
conn.rollback()
しかし、Python スクリプトが終了し、Perl スクリプトが引き続きファイルを解析しているようです。だから、Pythonはエラーを撃ちますsequence.parsed does not exist
Python スクリプトが Perl の実行が完了するのを待たないのはなぜですか?