aboutsummaryrefslogtreecommitdiffstats
path: root/sdvx/eamuse_csv/eamuse_merge_csv.py
diff options
context:
space:
mode:
Diffstat (limited to 'sdvx/eamuse_csv/eamuse_merge_csv.py')
-rw-r--r--sdvx/eamuse_csv/eamuse_merge_csv.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/sdvx/eamuse_csv/eamuse_merge_csv.py b/sdvx/eamuse_csv/eamuse_merge_csv.py
new file mode 100644
index 0000000..490114e
--- /dev/null
+++ b/sdvx/eamuse_csv/eamuse_merge_csv.py
@@ -0,0 +1,34 @@
+import argparse
+import csv
+
+def merge_csv(old_file: str, new_file: str):
+ old_csv_set = set()
+ new_csv_set = set()
+ encoding = "utf-8"
+ with open(old_file, encoding=encoding) as old_csv:
+ reader = csv.reader(old_csv, delimiter=",")
+ [old_csv_set.add(tuple(row)) for row in reader]
+ with open(new_file, "r", encoding=encoding) as new_csv:
+ reader = csv.reader(new_csv, delimiter=",")
+ header = next(reader)
+ [new_csv_set.add(tuple(row)) for row in reader]
+ new_csv_set = new_csv_set - old_csv_set
+
+ with open(new_file, "w", encoding=encoding, newline="") as new_csv:
+ writer = csv.writer(new_csv, delimiter=",")
+ writer.writerow(header)
+ for row in new_csv_set:
+ if row == ():
+ continue
+ writer.writerow(list(row))
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ prog="eamuse_merge_to_csv",
+ description="Merges an old SDVX e-amuse CSV with a new one. Keeping only new scores in the new file",
+ )
+ parser.add_argument("--old", help="Old CSV file", required=True)
+ parser.add_argument("--new", help="New CSV file", required=True)
+ args = parser.parse_args()
+ merge_csv(args.old, args.new)
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage