-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimport.py
40 lines (38 loc) · 1.61 KB
/
import.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import sqlite3
import os
def table_check(): #Check if database exists
create_table = """
CREATE TABLE WEB_URL(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
LONG_URL TEXT NOT NULL, SHORT_URL TEXT NOT NULL
);
"""
with sqlite3.connect('db/urls.db') as conn:
cursor = conn.cursor()
try: #Try making the database structure, if fails Database was already created.
cursor.execute(create_table)
except sqlite3.OperationalError:
pass
table_check()
with sqlite3.connect('db/urls.db') as conn:
cursor = conn.cursor()
lines = []
print("ready to recive data, please paste your data to import and press ENTER")
while True:
line = input()
if line:
lines.append(line)
else:
break
text = lines
entries = len(text) #Count the entries (for the output in the for loop)
counter = 1
for lines in text:
print("Importing " + str(counter) + " from " + str(entries)) #Make a progress message (mormaly unnecessary, because import is to quick (<1s))
SHORT_URL = lines.split(";")[0].replace("\n", "").replace("\r","") #Split the CSV at the ";" then use the first one and replace all linebreaks
LONG_URL = lines.split(";")[1].replace("\n", "").replace("\r","") #Split the CSV at the ";" then use the seccond one and replace all linebreaks
res = cursor.execute( #Insert the data in the SQL table
'INSERT INTO WEB_URL (LONG_URL, SHORT_URL) VALUES (?, ?)',
[LONG_URL, SHORT_URL]
)
counter = counter + 1 #Add 1 to counter, for progress