Skip to content

Instantly share code, notes, and snippets.

@McDevon
Created December 12, 2019 12:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save McDevon/84093aa8acce8ed53a1d4c0e5a01434a to your computer and use it in GitHub Desktop.
Save McDevon/84093aa8acce8ed53a1d4c0e5a01434a to your computer and use it in GitHub Desktop.
import sys
from optparse import OptionParser
def reader(filename):
with open(filename) as f:
while True:
char = f.read(1)
if char:
yield char
else:
return
def main():
usage = ('usage: %s filename.txt') % sys.argv[0]
parser = OptionParser(usage=usage)
(options, args) = parser.parse_args()
if len(args) < 1:
parser.print_help()
return -1
numerals = {
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000
}
filename = args[0]
sum = 0
file = reader(filename)
for char in file:
if char.upper() in numerals:
sum += numerals[char.upper()]
print('Chronogram sum of file ' + filename + ': ' + str(sum))
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment