我有一个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标记,没有投下你的问题.. –