Handle common exceptions

This commit is contained in:
Mark Cornick 2022-08-17 12:53:06 -04:00
parent bb01952895
commit 1d7217f5ca
1 changed files with 42 additions and 19 deletions

View File

@ -29,27 +29,50 @@ import sys
cue_file = sys.argv[1]
meta_file = re.sub(r"cue$", "meta", cue_file)
with open(cue_file) as f:
cue = f.readlines()
try:
with open(cue_file) as f:
cue = f.readlines()
except FileNotFoundError:
sys.stderr.write("{} not found\n".format(cue_file))
sys.exit(1)
except IsADirectoryError:
sys.stderr.write("{} is a directory\n".format(cue_file))
sys.exit(1)
except PermissionError:
sys.stderr.write("No permission to read {}\n".format(cue_file))
sys.exit(1)
except OSError:
sys.stderr.write("OS error trying to read {}\n".format(cue_file))
sys.exit(1)
title = None
performer = None
timestamp = None
with open(meta_file, "w") as f:
for line in cue:
title_re = re.search(r'^ TITLE "(.*)"$', line)
performer_re = re.search(r'^ PERFORMER "(.*)"$', line)
index_re = re.search(r"^ INDEX 01 (.*)$", line)
if title_re:
title = title_re[1]
if performer_re:
performer = performer_re[1]
if index_re:
time_re = re.search(r"^(..):(..):..$", index_re[1])
timestamp = "00{}{}".format(time_re[1], time_re[2])
if title and performer and timestamp:
f.write("{}:{} - {}\n".format(timestamp, performer, title))
title = None
performer = None
timestamp = None
try:
with open(meta_file, "w") as f:
for line in cue:
title_re = re.search(r'^ TITLE "(.*)"$', line)
performer_re = re.search(r'^ PERFORMER "(.*)"$', line)
index_re = re.search(r"^ INDEX 01 (.*)$", line)
if title_re:
title = title_re[1]
if performer_re:
performer = performer_re[1]
if index_re:
time_re = re.search(r"^(..):(..):..$", index_re[1])
timestamp = "00{}{}".format(time_re[1], time_re[2])
if title and performer and timestamp:
f.write("{}:{} - {}\n".format(timestamp, performer, title))
title = None
performer = None
timestamp = None
except IsADirectoryError:
sys.stderr.write("{} is a directory\n".format(meta_file))
sys.exit(1)
except PermissionError:
sys.stderr.write("No permission to write {}\n".format(meta_file))
sys.exit(1)
except OSError:
sys.stderr.write("OS error trying to write {}\n".format(meta_file))
sys.exit(1)