From d5dd755e7dd99cb0a1997c1d04bed8df219819f9 Mon Sep 17 00:00:00 2001 From: Stepan Anchugov Date: Thu, 9 Jul 2015 02:09:27 +0500 Subject: [PATCH 1/6] Add input/output file arguments --- retrieve-identifiers.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/retrieve-identifiers.py b/retrieve-identifiers.py index 055516e..49b2de8 100644 --- a/retrieve-identifiers.py +++ b/retrieve-identifiers.py @@ -2,6 +2,17 @@ import struct import urllib.parse, urllib.request import json +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("-i", + dest="input_filename", + help="Input file (CSV)") +parser.add_argument("-o", + dest="output_filename", + help="Output file (CSV)") + +args = parser.parse_args() def retrieve_itunes_identifier(title, artist): @@ -34,8 +45,10 @@ def retrieve_itunes_identifier(title, artist): itunes_identifiers = [] +output_file = open(args.output_filename, 'w', encoding='utf-8') with open('spotify.csv', encoding='utf-8') as playlist_file: +with open(args.input_filename, encoding='utf-8') as playlist_file: playlist_reader = csv.reader(playlist_file) next(playlist_reader) @@ -46,6 +59,7 @@ def retrieve_itunes_identifier(title, artist): if itunes_identifier: itunes_identifiers.append(itunes_identifier) print("{} - {} => {}".format(title, artist, itunes_identifier)) + output_file.write(str(itunes_identifier) + "\n") else: print("{} - {} => Not Found".format(title, artist)) From 19cc773a1672069d2c2009d876712b64b8a80217 Mon Sep 17 00:00:00 2001 From: Stepan Anchugov Date: Thu, 9 Jul 2015 02:10:07 +0500 Subject: [PATCH 2/6] Allow line skipping --- retrieve-identifiers.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/retrieve-identifiers.py b/retrieve-identifiers.py index 49b2de8..51eae40 100644 --- a/retrieve-identifiers.py +++ b/retrieve-identifiers.py @@ -5,6 +5,8 @@ import argparse parser = argparse.ArgumentParser() +parser.add_argument("-s", "--skip", dest="skip", + help="Amount of lines to skip from the input file") parser.add_argument("-i", dest="input_filename", help="Input file (CSV)") @@ -48,12 +50,17 @@ def retrieve_itunes_identifier(title, artist): output_file = open(args.output_filename, 'w', encoding='utf-8') with open('spotify.csv', encoding='utf-8') as playlist_file: +i = 0 +skip = int(args.skip) with open(args.input_filename, encoding='utf-8') as playlist_file: playlist_reader = csv.reader(playlist_file) next(playlist_reader) for row in playlist_reader: title, artist = row[1], row[2] + i += 1 + if i < skip: + continue itunes_identifier = retrieve_itunes_identifier(title, artist) if itunes_identifier: From 9962723b55b5de6808ab1143e66d462a63ee30cb Mon Sep 17 00:00:00 2001 From: Stepan Anchugov Date: Thu, 9 Jul 2015 02:10:51 +0500 Subject: [PATCH 3/6] Do writes right in place --- retrieve-identifiers.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/retrieve-identifiers.py b/retrieve-identifiers.py index 51eae40..0a06f23 100644 --- a/retrieve-identifiers.py +++ b/retrieve-identifiers.py @@ -68,9 +68,4 @@ def retrieve_itunes_identifier(title, artist): print("{} - {} => {}".format(title, artist, itunes_identifier)) output_file.write(str(itunes_identifier) + "\n") else: - print("{} - {} => Not Found".format(title, artist)) - - -with open('itunes.csv', 'w', encoding='utf-8') as output_file: - for itunes_identifier in itunes_identifiers: - output_file.write(str(itunes_identifier) + "\n") + print("{}. {} - {} => Not Found".format(i, title, artist)) From 72bd078a6f18a74a30dc0f903aec2778c8ab1070 Mon Sep 17 00:00:00 2001 From: Stepan Anchugov Date: Thu, 9 Jul 2015 02:11:16 +0500 Subject: [PATCH 4/6] Show row numbers during import --- retrieve-identifiers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retrieve-identifiers.py b/retrieve-identifiers.py index 0a06f23..588ab48 100644 --- a/retrieve-identifiers.py +++ b/retrieve-identifiers.py @@ -65,7 +65,7 @@ def retrieve_itunes_identifier(title, artist): if itunes_identifier: itunes_identifiers.append(itunes_identifier) - print("{} - {} => {}".format(title, artist, itunes_identifier)) output_file.write(str(itunes_identifier) + "\n") + print("{}. {} - {} => {}".format(i, title, artist, itunes_identifier)) else: print("{}. {} - {} => Not Found".format(i, title, artist)) From 197c0f3b4a8e07d832921a8830e89cee496c8cb3 Mon Sep 17 00:00:00 2001 From: Stepan Anchugov Date: Thu, 9 Jul 2015 02:11:37 +0500 Subject: [PATCH 5/6] Handle SIGINT --- retrieve-identifiers.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/retrieve-identifiers.py b/retrieve-identifiers.py index 588ab48..c79b695 100644 --- a/retrieve-identifiers.py +++ b/retrieve-identifiers.py @@ -2,6 +2,8 @@ import struct import urllib.parse, urllib.request import json +import signal +import sys import argparse parser = argparse.ArgumentParser() @@ -49,7 +51,12 @@ def retrieve_itunes_identifier(title, artist): output_file = open(args.output_filename, 'w', encoding='utf-8') -with open('spotify.csv', encoding='utf-8') as playlist_file: +def signal_handler(signal, frame): + output_file.close() + sys.exit(0) + +signal.signal(signal.SIGINT, signal_handler) + i = 0 skip = int(args.skip) with open(args.input_filename, encoding='utf-8') as playlist_file: From cba679ee4c96a99d9942418673d9a72b1b5cfa78 Mon Sep 17 00:00:00 2001 From: Stepan Anchugov Date: Thu, 9 Jul 2015 13:47:38 +0500 Subject: [PATCH 6/6] Add defaults for CLI arguments --- retrieve-identifiers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/retrieve-identifiers.py b/retrieve-identifiers.py index c79b695..0a4f11f 100644 --- a/retrieve-identifiers.py +++ b/retrieve-identifiers.py @@ -7,13 +7,15 @@ import argparse parser = argparse.ArgumentParser() -parser.add_argument("-s", "--skip", dest="skip", +parser.add_argument("-s", "--skip", dest="skip", default=0, help="Amount of lines to skip from the input file") parser.add_argument("-i", dest="input_filename", + default="spotify.csv", help="Input file (CSV)") parser.add_argument("-o", dest="output_filename", + default="itunes.csv", help="Output file (CSV)") args = parser.parse_args()