34 lines
941 B
Python
Executable File
34 lines
941 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# usage: generate-countries-table.py > countries.csv
|
|
# in sqlite3 terminal:
|
|
#
|
|
# .mode csv
|
|
# .headers off
|
|
# .separator ";"
|
|
# .import `full path to countries.csv` `v(database_version)_countries`
|
|
#
|
|
|
|
import csv
|
|
import os
|
|
import sys
|
|
|
|
TSV_FILE = '../data/country_names.tsv'
|
|
# Use another name in the country_code header if you want countries names in different language
|
|
READABLE_NAME = 'en'
|
|
# ord("🇦") - ord("A")
|
|
FLAG_OFFSET = 127397
|
|
|
|
if not os.path.exists(TSV_FILE):
|
|
print("File = {} does not exist.".format(TSV_FILE))
|
|
sys.exit(1)
|
|
|
|
with open(TSV_FILE, 'r') as tsvfile:
|
|
country = csv.DictReader(tsvfile, delimiter='\t', quotechar='"')
|
|
# Skip header
|
|
next(country)
|
|
for row in country:
|
|
country_code = row['country_code']
|
|
codepoints = [ord(x) + FLAG_OFFSET for x in country_code]
|
|
print('%s;%s;%s' % (country_code, chr(codepoints[0]) + chr(codepoints[1]), row[READABLE_NAME]))
|