dottes/abcfirstline.py

42 lines
1.1 KiB
Python
Raw Normal View History

#!/usr/bin/env python
#
# Write out a modified version of a .abc file with just the data
# to print the first line of the music only.
#
import sys
def process(inf):
continued = False
print "X:1"
for line in inf:
line = line.strip()
# If it is empty or starts "%", ignore it.
if len(line) == 0 or line[0] == "%":
continue
# Is it a header line? I.e. does it start LETTER COLON?
# If so, output only ones we need.
start = line[:2]
if len(start) > 1 and start[1] == ":" and start[0].isalpha():
if start[0] in ["M", "K", "L"]:
print line
# Output line. If it is a continuation, output at most one
# continuation.
else:
print line
if continued or line[-1] != "\\":
break
else:
continued = True
if len(sys.argv) > 1:
for arg in sys.argv[1:]:
try:
inf = open(arg, "r")
process(inf)
finally:
inf.close()
else:
process(sys.stdin)