如何摄取 .txt 形式的 table 规范文件并在 sqlite 中创建 table?
how to ingest a table specification file in .txt form and create a table in sqlite?
我在下面尝试了几种不同的方法,但遇到问题 a) 删除宽度和 b) 删除带逗号的 \n。我有一个如下所示的 txt 文件,我想获取该信息并在 sqlite 中创建一个 table(全部使用 python)
"field",width, type
name, 15, string
revenue, 10, decimal
invoice_date, 10, string
amount, 2, integer
当前 python 代码 - 尝试读入文件,并获取要在下面的 sql 语句中传递的值
进口os
将 pandas 导入为 pd
dir_path = os.path.dirname(os.path.realpath(__file__))
file = open(str(dir_path) + '/revenue/revenue_table_specifications.txt','r')
lines = file.readlines()
table = lines[2::]
s = ''.join(str(table).split(','))
x = s.replace("\n", ",").strip()
print(x)
sql我要传进去
c = sqlite3.connect('rev.db') #connnect to DB
try:
c.execute('''CREATE TABLE
revenue_table (information from txt file,
information from txt file,
....)''')
except sqlite3.OperationalError: #i.e. table exists already
pass
这产生了一些有用的东西。
def makesql(filename):
s = []
for row in open(filename):
if row[0] == '"':
continue
parts = row.strip().split(", ")
s.append( f"{parts[0]} {parts[2]}" )
return "CREATE TABLE revenue_table (\n" + ",\n".join(s) + ");"
sql = makesql( 'x.csv' )
print(sql)
c.execute( sql )
我在下面尝试了几种不同的方法,但遇到问题 a) 删除宽度和 b) 删除带逗号的 \n。我有一个如下所示的 txt 文件,我想获取该信息并在 sqlite 中创建一个 table(全部使用 python)
"field",width, type
name, 15, string
revenue, 10, decimal
invoice_date, 10, string
amount, 2, integer
当前 python 代码 - 尝试读入文件,并获取要在下面的 sql 语句中传递的值
进口os 将 pandas 导入为 pd
dir_path = os.path.dirname(os.path.realpath(__file__))
file = open(str(dir_path) + '/revenue/revenue_table_specifications.txt','r')
lines = file.readlines()
table = lines[2::]
s = ''.join(str(table).split(','))
x = s.replace("\n", ",").strip()
print(x)
sql我要传进去
c = sqlite3.connect('rev.db') #connnect to DB
try:
c.execute('''CREATE TABLE
revenue_table (information from txt file,
information from txt file,
....)''')
except sqlite3.OperationalError: #i.e. table exists already
pass
这产生了一些有用的东西。
def makesql(filename):
s = []
for row in open(filename):
if row[0] == '"':
continue
parts = row.strip().split(", ")
s.append( f"{parts[0]} {parts[2]}" )
return "CREATE TABLE revenue_table (\n" + ",\n".join(s) + ");"
sql = makesql( 'x.csv' )
print(sql)
c.execute( sql )