No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

files_to_database.py 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import sqlite3
  2. from datetime import datetime
  3. def create_table_files():
  4. conn = sqlite3.connect("files.db", detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)
  5. cur = conn.cursor()
  6. cur.execute("CREATE TABLE files (name VARCHAR(255) PRIMARY KEY, moment TIMESTAMP, length INT);")
  7. conn.commit()
  8. conn.close()
  9. def populate_table_files():
  10. conn = sqlite3.connect("files.db", detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)
  11. cur = conn.cursor()
  12. with open("files.txt", "r") as f:
  13. for line in f:
  14. file, fsize = line.split(" ")
  15. fsize = int(fsize.rstrip())
  16. if file.endswith(".ast"):
  17. year, month, rem = file.split("-")
  18. day = rem.split(".")[0]
  19. cur.execute("INSERT INTO files VALUES (?, ?, ?);", (file, datetime(int(year), int(month), int(day), 0, 0, 0, 0), fsize))
  20. print("year=%s month=%s day=%s hour=0 minut=0 length=%s" % (year, month, day, fsize))
  21. else:
  22. year, month, day, rem = file.split("-")
  23. compact_moment = rem.split(".")[0]
  24. hour = compact_moment[:2]
  25. minut = compact_moment[2:]
  26. cur.execute("INSERT INTO files VALUES (?, ?, ?);", (file, datetime(int(year), int(month), int(day), int(hour), int(minut), 0, 0), fsize))
  27. print("year=%s month=%s day=%s hour=%s minut=%s length=%s"%(year, month, day, hour, minut, fsize))
  28. f.close()
  29. conn.commit()
  30. conn.close()
  31. def unpopulate_table_files():
  32. conn = sqlite3.connect("files.db", detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)
  33. cur = conn.cursor()
  34. cur.execute("DELETE FROM files;")
  35. conn.commit()
  36. conn.close()
  37. def query_from_table_files(number=30):
  38. conn = sqlite3.connect("files.db", detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)
  39. cur = conn.cursor()
  40. cur.execute("SELECT * FROM files;")
  41. rows = cur.fetchmany(number)
  42. conn.close()
  43. for row in rows:
  44. print(row)
  45. def query_from_table_files_with_moment(moment=datetime(2020,11,21,15,23,0,0)):
  46. conn = sqlite3.connect("files.db", detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)
  47. cur = conn.cursor()
  48. cur.execute("SELECT * FROM files;")
  49. rows = cur.fetchall()
  50. conn.close()
  51. for row in rows:
  52. if row[1] >= moment:
  53. print(row)
  54. def drop_table_files():
  55. conn = sqlite3.connect("files.db", detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)
  56. cur = conn.cursor()
  57. cur.execute("DROP TABLE files;")
  58. conn.commit()
  59. conn.close()
  60. # create_table_files()
  61. # drop_table_files()
  62. # populate_table_files()
  63. # unpopulate_table_files()
  64. # query_from_table_files()
  65. query_from_table_files_with_moment()