2010-04-19 64 views
1

我有一個製表符分隔文件,我想轉換成一個mysql表。文本文件中有25個製表符分隔字段。 當我逐字地構造SQL語句並獲取VALUES部分中單獨聲明的每個值時,我可以獲取這些值,但是當我嘗試將整個列表作爲整體使用時,它不起作用。這是代碼。我無法弄清楚。有任何想法嗎?我有一個製表符分隔文件,我想轉換成一個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 

回答

2

爲什麼不直接在mysql中使用LOAD DATA INFILE

+0

感謝您的建議。我已經使用它,它似乎運作良好。如果在未管理的服務器上工作,則需要小心並使用LOCAL選項。 謝謝 – biomed 2010-04-20 19:04:37

+0

是的。一定要將您的問題標記爲已回答! – 2010-04-20 19:24:40

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」更加健壯並且「簡單地」寫成','join((''s',)* len(linex))。 – EOL 2010-04-20 08:27:48

相關問題