[OK]を、私はそこにファイルの束と私のデスクトップ上のフォルダがあります。私はそれを繰り返し、タイトルからINTEGER(年)を解析し、各ファイルの情報を開いて解析し、それをMySQLデータベースに入れたいと思っています。ディレクトリ内のファイルを反復処理し、INFOをMySQLデータベースにプラグインする方法
ファイルは次のようになり.txtファイルです:私は、MySQLデータベースに情報を解析する
Mary,F,7065
Anna,F,2604
Emma,F,2003
Elizabeth,F,1939 ... and so on
:
yob1880.txt
yob1881.txt
yob1882.txt ...and so on
ファイル内の情報このように見えます。私は、テーブルの名前としてデータベースに解析されたINTEGER(年)を取得することはできません。ですから、私は自分のAUTO-INCREMENTED IDとしてデータベースにすべての年を入れてリンクする必要があると思います。しかし、私はどのように情報を対応する年にリンクしますか?このコードは、唯一の3つの列と10行で一つのテーブルを与える
import sqlite3
import os
import glob
conn = sqlite3.connect('babynames.sqlite')
cur = conn.cursor()
cur.executescript('''
DROP TABLE IF EXISTS Babynames;
CREATE TABLE Babynames (
names TEXT UNIQUE,
gender TEXT,
ranking INTEGER
)''')
folder = "folder/location"
files = glob.glob(folder) # file names with content attached
for f in files:
cut = f.split('/')[-1]
cut2 = cut.split('.')[0]
yob = cut2[3:] #parses out years from title
for i in files:
with open(i) as f:
content = f.read()
line = content.split(',')
names = line[0]
gender = line[1]
ranking = line[2] # need to get only integers
cur.execute('''INSERT OR IGNORE INTO Babynames (names,
gender, ranking)
VALUES (?, ?, ?)''', (names, gender, ranking))
conn.commit()
数千行があるはずです:
は、ここに私のコードです。 :/
フォルダ内のすべてのファイルを繰り返し処理しているようには見えません。