forked from jaredrummler/AndroidDeviceNames
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate_db.py
More file actions
41 lines (36 loc) · 991 Bytes
/
update_db.py
File metadata and controls
41 lines (36 loc) · 991 Bytes
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
41
import csv
import sqlite3
csv_file = 'supported_devices (3).csv'
db_file = 'database/android-devices.db'
conn = sqlite3.connect(db_file)
cur = conn.cursor()
# 创建表(如果不存在)
cur.execute('''
CREATE TABLE IF NOT EXISTS devices (
_id INTEGER PRIMARY KEY,
name TEXT,
codename TEXT,
model TEXT
)
''')
# 尝试多种编码打开文件
encodings = ['utf-8-sig', 'utf-16', 'gbk']
for enc in encodings:
try:
with open(csv_file, newline='', encoding=enc) as f:
reader = csv.reader(f)
for row in reader:
if row[0] == "Brand":
continue
name = row[1]
codename = row[2]
model = row[3]
cur.execute(
'INSERT INTO devices (name, codename, model) VALUES (?, ?, ?)',
(name, codename, model)
)
break
except UnicodeDecodeError:
continue
conn.commit()
conn.close()