我有一个文本文件,其中包含一定数量的小时格式&#; hh:mm'按照以下顺序:
Times1.txt:
10:12 13:22 15:45 18:23 19:20(...)
现在我想使用 Python和SQLite3 将此.txt文件导入名为Times1.db的SQL数据库,并创建一个包含一列的表,此列的每一行都将在下一小时,像这样:
10:12
13:22
15:45
18:23
19:20
(...)
所以我可以从这张表中得到第二行,这将是13:22。
如果这可能会改变某些内容.txt文件也可以以这种格式存储这个小时:
10:12,12:22,15:45,(...)
或
10:12
12:22
15:45
(...)
我试图在很多方面做到这一点,但我能得到的只是单行,其中包含所有小时数。
这就是我迄今为止所做的:
import os
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
#c.execute("CREATE TABLE time(hour REAL)")
#table time is already created
#thanks to @Asav Patel
with open('test.txt') as f1:
hours = next(f1).split()
for hour in hours:
print (hour)
c.executemany("INSERT INTO time (hour) VALUES (?)", (hour,))
conn.commit()
def read_from_database():
sql = "SELECT * FROM time"
for row in c.execute(sql):
print(row)
print(row[0])
read_from_database()
conn.close()
答案 0 :(得分:0)
假设您的文件中只有一行。
with open('test_docs/file1.txt') as f:
hours = f.read().split()
for hour in hours:
print (hour)
答案 1 :(得分:-1)
好的,我找到了一种方法来做到这一点:)我测试了它并且它正在工作。
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("CREATE TABLE example(Time REAL)")
num_lines = sum(1 for line in open('test.txt'))
f=open('test.txt')
lines=f.readlines()
i=1
while True:
time = (lines[i])
c.execute("INSERT INTO example (Time) VALUES (?)", (time, ))
conn.commit()
i+=1
if i == num_lines:
break
conn.close()
@cwallenpoole
但这是我发现创建这样一个表的唯一方法: table