35 lines
1.4 KiB
Python
Executable file
35 lines
1.4 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import tools
|
|
|
|
import sqlite3, csv, sys
|
|
|
|
def makeDB(path=tools.dbpath(), infile='tweets.csv'):
|
|
try:
|
|
infile = open(infile)
|
|
except IOError:
|
|
raise IOError("Unable to read %s." % infile)
|
|
|
|
input = list(csv.reader(infile))
|
|
|
|
conn = sqlite3.connect(path)
|
|
cur = conn.cursor()
|
|
|
|
try:
|
|
cur.execute("CREATE TABLE tweets(`tweet_id` INTEGER NOT NULL, `in_reply_to_status_id` TEXT, `in_reply_to_user_id` TEXT, `timestamp` TEXT, `source` TEXT, `text` TEXT, `retweeted_status_id` TEXT, `retweeted_status_user_id` TEXT, `retweeted_status_timestamp` TEXT, `expanded_urls` TEXT, PRIMARY KEY(tweet_id));")
|
|
except sqlite3.OperationalError:
|
|
raise IOError("%s already exists. Please delete it before trying to create a new one." % path)
|
|
|
|
for row in input[1:]:
|
|
cur.execute("INSERT INTO tweets VALUES(" + row[0].replace("'","''") + ",'" + row[1].replace("'","''") + "','" + row[2].replace("'","''") + "','" + row[3].replace("'","''") + "','" + row[4].replace("'","''") + "','" + row[5].replace("'","''") + "','" + row[6].replace("'","''") + "','" + row[7].replace("'","''") + "','" + row[8].replace("'","''") + "','" + row[9].replace("'","''") + "');")
|
|
|
|
conn.commit()
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) > 2:
|
|
raise ValueError(sys.argv[0] + " only takes one argument, the path of the new database file.")
|
|
try:
|
|
makeDB(sys.argv[1])
|
|
except IndexError:
|
|
makeDB()
|
|
|