我得到了一个类似这样的.txt文件:"Rock也称为: Alternative rock“我需要使用sqlite3和python将其导入到数据库中。每种类型在不同的列中,如:
摇滚|另类摇滚
谢谢。
|:分隔列。
import sqlite3
conn = sqlite3.connect('chinook(1).db')
cur = conn.cursor()
file=open('subgenres3.txt','r')
try:
file = open('subgenres3.txt', 'r')
except:
print("file not found")
f=file.read()
f=f.split("\n")
for line in f:
cur.execute("INSERT INTO subgénero (subgenrename,subgenrealtname) VALUES (?,?)", (line,line))
conn.commit()
conn.close()发布于 2019-10-20 10:28:43
如果你想把所有东西都放在python中,那么我建议你使用regular expressions (regex) within python。下面的正则表达式应该与最新的python re模块兼容。它有两个与第一个和第二个字段匹配的捕获组。
^((?:\w|\s)+) also know as: ?((?:\w|\s)+?\w)\s*?$将为每行获取两个字段值的代码片段如下所示
p = re.compile('^((?:\w|\s)+?) also know as: *?((?:\w|\s)+?\w)\s*?$')
for line in f:
m = p.match(line)
subgenrename = m.group(1)
subgenrealtname = m.group(2)
...发布于 2019-10-20 09:46:35
这是一个使用sed和sqlite3的有效解决方案。它说明了如何解决问题,并且可以很容易地调整为使用您喜欢的任意数量的python:
sed 's/ *also known* as: */,/' subgenres3.txt > subgenres3.csv
cat <<EOF | sqlite3 'chinook(1).db'
CREATE TABLE IF NOT EXISTS subgénero (subgenrename,subgenrealtname);
.mode csv
.import subgenres3.csv 'subgénero'
EOFhttps://stackoverflow.com/questions/58469040
复制相似问题