tags:

views:

55

answers:

2

I have a tab delimeted file that I want to convert into a mysql table. there are 25 tab delimeted fields in the text file. I can get the values in when I construct the SQL statement word by word and get each value individually stated in the VALUES part but when I try to get the list as a whole it does not work. Here is the code. I couldn't figure it out. Any ideas?

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
+2  A: 

Why not just use LOAD DATA INFILE from mysql?

webdestroya
Thanks for the advise. I have used it and it seems to be working well. One needs to be careful and use LOCAL option as well if working on a server that he is not administering.Thanks
biomed
Yep. Be sure to mark your question as answered!
webdestroya
+1  A: 
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) 
....
ghostdog74
"%s,%s,…,%s" is more robustly and "simply" written as ','.join(('%s',)*len(linex)).
EOL