2013-09-22 1 views
0

Python scriptPerl script을 호출하여 파일을 구문 분석했습니다. 구문 분석 후 PERL 스크립트는 Python 스크립트로 MySQL 데이터베이스에로드 될 출력을 생성합니다.PERL 스크립트의 출력이 Python을 사용하여 MySQL에로드되지 않았습니다.

파이썬 스크립트와 같은 것입니다 :

pipe = subprocess.Popen(["perl", "./parseGeneticCode.pl"], stdin=subprocess.PIPE) 
pipe.stdin.close() 
pipe = subprocess.Popen(["perl", "./makeTaxon.pl"], stdin=subprocess.PIPE) 
pipe.stdin.close() 

#Load taxon.out (output of makeTaxon.pl) in the database 
sql10 = """LOAD DATA LOCAL INFILE 'gene_code.out' INTO TABLE geneticcode FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' (ncbi_taxon_ID, parent_ID, taxon_name, taxon_strain, rank, geneticcode_ID, mitochondrial_geneticcode_ID);""" 
try: 
    c.execute(sql10) 
    conn.commit() 
    print "\nDone uploading in taxon\n" 
except StandardError, e: 
    print e 
    conn.rollback() 
conn.close() 

sql9 = """LOAD DATA LOCAL INFILE 'taxon.out' INTO TABLE taxon FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' (ncbi_taxon_ID, parent_ID, taxon_name, taxon_strain, rank, geneticcode_ID, mitochondrial_geneticcode_ID);""" 
try: 
    c.execute(sql9) 
    conn.commit() 
    print "\nDone uploading in taxon\n" 
except StandardError, e: 
    print e 
    conn.rollback() 
conn.close() 

이 파일 : taxon.outgene_code.out는 펄 스크립트에 의해 생성됩니다. 하지만 내 파이썬 스크립트가 오류를주고있다 : 파일 gene_code.out 또는 taxon.out

(2, "File 'taxon.out' not found (Errcode: 2)") 
(0, '') 
Traceback (most recent call last): 
    File "common_data.py", line 247, in <module> 
    conn.rollback() 
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away') 

어느

이 업로드됩니다.

+0

mysql에로드하려고 할 때'out' 파일이 이미 생성 되었습니까? – alecxe

+0

실행 후 파일을 볼 수 있습니다. – aki2all

+0

.out 파일의 절대 경로를 지정하면 작동합니까? –

답변

0

LOAD DATA LOCAL을 사용하려면 MySQL 서버와 클라이언트를 모두 명시 적으로 구성해야합니다. in the documentation 토론을 참조하십시오.

관련 문제