123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #!/usr/bin/python2
- import eyed3
- import sys
- def err(*args):
- sys.stderr.write(" ".join(args) + "\n")
- def die(*args):
- err(*args)
- sys.exit(1)
- USAGE='Usage: {0} [file]'.format(sys.argv[0])
- def to_file_case(name):
- for ch in name:
- if ord(ch) > 127:
- err("ERROR: {0} outside ASCII range".format(ord(ch)))
- raise Exception("NonAsciiName")
- return '_'.join(name.lower().split())
- filenames = sys.argv[1:]
- if not filenames:
- die(USAGE)
- def do_rename(filename):
- audiofile = eyed3.load(filename)
- (tn,_) = audiofile.tag.track_num
- if tn is None:
- err("ERROR: Unknown track number for file `{0}'".format(filename))
- title = audiofile.tag.title
- newname = '{0:02}_-_{1}'.format(tn, to_file_case(title))
- print "renaming: `{0}' -> `{1}'".format(filename, newname)
- audiofile.rename(newname)
- for f in filenames:
- try:
- do_rename(f)
- except:
- err("ERROR: Unable to rename `{0}'".format(f))
|