2010-04-19 4 views
1

J'ai un fichier délimité par tabulation que je veux convertir en une table mysql. il y a 25 champs délimités par des tabulations dans le fichier texte. Je peux obtenir les valeurs lorsque je construis l'instruction SQL mot par mot et que chaque valeur est indiquée individuellement dans la partie VALUES, mais lorsque j'essaie d'obtenir la liste dans son ensemble, cela ne fonctionne pas. Voici le code. Je ne pouvais pas comprendre. Des idées?J'ai un fichier délimité par une tabulation que je veux convertir en une table mysql

lines=open(path, "r").readlines() 

for line in lines[1:]: 

linex=line.strip().split("\t") 
linex.insert(0,'sometextindex')  

try: 
    cursor.execute('INSERT INTO variants VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',linex) 
except: 
    print 'line number=',a,linex 

Répondre

2

Pourquoi ne pas simplement utiliser de mysql?

+0

Merci pour le conseil. Je l'ai utilisé et il semble bien fonctionner. Il faut être prudent et utiliser l'option LOCAL si vous travaillez sur un serveur qu'il n'administre pas. Merci – biomed

+0

Oui. Assurez-vous de marquer votre question comme répondue! –

0
stmt="%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s" % (linex[0],linex[1],linex[2], ........) 
.... 
cursor.execute(stmt) 
.... 
+0

"% s,% s, ...,% s" est plus robuste et "simplement" écrit comme ','. Join (('% s',) * len (linex)). – EOL

Questions connexes