Я новичок в программировании и программировании на Python в целом, так голый со мной.
Я пытаюсь создать программу, которая принимает несколько текстовых файлов с разделителями вкладок, и работает через них по одному, забирая данные, которые они хранят в базе данных MySQL. Существует несколько текстовых файлов, таких как movies.txt, которые выглядят следующим образом:
1 Avatar
3 Iron Man
3 Star Trek
и players.txt, которые выглядят одинаково и т.д. Каждый текстовый файл имеет более ста записей, каждый с идентификатором и соответствующим значением, как показано выше. Я нашел несколько примеров кода на этом сайте и других, но я не могу понять, как их реализовать в этой ситуации.
Пока мой код выглядит примерно так:
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()
и
MySQL может читать TSV файлы напрямую с помощью утилиты mysqlimport
или путем выполнения команды LOAD DATA INFILE
SQL. Это будет быстрее, чем обработка файла на python и его вставка, но вы можете узнать, как это сделать. Удачи!
LOAD DATA LOCAL INFILE 'movies.txt' INTO TABLE popularity FIELDS TERMINATED BY '\\t' LINES TERMINATED BY '\\n
(PersonNumber, Category, Value) SET Category =' Movies'` установит Категория для каждой строки.