2010-10-14 88 views
0

我對Python的編程和編程一般都很陌生,對我來說很陌生。用Python將多個製表符分隔的文本文件插入到MySQL中?

我想創建一個程序,需要一些標籤分層文本文件,並通過它們一次一個地輸入他們保存到MySQL數據庫中的數據。有幾個文本文件,如movies.txt它看起來像這樣:

1 Avatar 
3 Iron Man 
3 Star Trek 

和actors.txt看起來相同等等。每一個文本文件所看到向上百項每一個ID和對應的值以上。我在這個網站和其他網站上發現了很多代碼示例,但是我無法理解如何在這種情況下實現它們。

到目前爲止我的代碼看起來是這樣的......

import MySQLdb 

database_connection = MySQLdb.connect(host='localhost', user='root', passwd='') 

cursor = database_connection.cursor() 

cursor.execute('CREATE DATABASE library') 

cursor.execute('USE library') 

cursor.execute('''CREATE TABLE popularity (
        PersonNumber INT, 
        Category VARCHAR(25), 
        Value VARCHAR(60), 
        ) 
        ''') 

def data_entry(categories): 

每次我試圖讓其他的代碼,我發現這個我只是得到完全失去了工作。希望有人能幫助我,讓我知道我需要做什麼,或者指引我向更多信息的方向發展。

任何幫助將不勝感激。

感謝

我一直在努力去適應我的情況的代碼的例子有:

import MySQLdb, csv, sys 
conn = MySQLdb.connect (host = "localhost",user = "usr", passwd = "pass",db = "databasename") 
c = conn.cursor() 
csv_data=csv.reader(file("a.txt")) 
for row in csv_data: 
print row 
c.execute("INSERT INTO a (first, last) VALUES (%s, %s), row") 
c.commit() 
c.close() 

和:

Python File Read + Write

+0

嘗試在第二個示例中移動** **,以便將該行傳遞給執行調用。 c.execute(「INSERT INTO(first,last)VALUES(%s,%s)」,行) 這個環節有幾個執行的例子。 http://mysql-python.sourceforge.net/MySQLdb.html#connection-objects – kevpie 2010-10-14 01:58:51

回答

1

MySQL能夠TSV文件,直接使用閱讀mysqlimport實用程序或通過執行LOAD DATA INFILE SQL命令。這將比在python中處理文件並插入它更快,但您可能想要了解如何執行這兩個操作。祝你好運!

+0

感謝。好了,所以這真的有幫助。我學習Python的不止SQL,所以我想用python來做,即使速度較慢。我現在所擁有的是cursor.execute(「LOAD DATA LOCAL INFILE'movies.txt'INTO TABLE受歡迎FIELDS TERMINATED BY'\\ t'LINES TERMINATED BY' \\ n'「)這是工作。我得到的數據但不是沒有刪除類別VARCHAR(2 5)我真的需要。我需要通過電影,電視等文件的名稱來填充類別,這樣才能起作用。我知道我必須做的事很明顯,但是我不能讓我工作。感謝您的幫助。 – 2010-10-14 06:25:53

+2

把你的分類欄放到最後:'LOAD DATA LOCAL INFILE'movies.txt'INTO TABLE受歡迎程度FIELDS TERMINATED BY'\\ t'LINES TERMINATED BY'\\ n'(PersonNumber,Category,Value)SET Category ='Movies''將爲每一行設置類別。 – 2010-10-14 13:56:36

+0

真的很感謝你的幫助。現在工作了.. – 2010-10-15 02:11:19

相關問題