我有一個Python
腳本,它調用一個Perl
腳本來分析一些文件並生成輸出文件。再次使用Python腳本將這些輸出文件上傳到MySQL
數據庫。 Perl腳本大約需要5-7 mins
來解析一些文件並生成Python用來上傳的輸出文件。從Python腳本調用Perl時,Perl沒有完全執行
的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完成執行?
@mpapec,在這個問題中添加我的Perl代碼的範圍是什麼。在投票前你有沒有讀過我的問題? – aki2all
剛剛刪除了Perl標記,沒有投下你的問題.. –