On Tue, 22 Mar 2005 09:21:49 -0800, Scott David Daniels <[EMAIL PROTECTED]> wrote:
>Bouke Woudstra wrote: >> It turned out that some flac files have tags like Artist=artistname and >> others >> have artist=artistname. Therefore it couldn't find the artist! So now I just >> look for 'rtist=' which works great. > >You might want try using something like this: > > wanted = set('artist album date title tracknumber genre'.split()) > ... > > def read_and_call(self, flac, source): > parts = {} > for line in source: > try: > head, remainder = line.split('=', 1) > except ValueError: > pass # No equal sign in the line > else: > head = head.strip().lower() > if head in wanted: > parts[head] = remainder.strip() > self.wav2mp3(flac, **parts) Doesn't wav2mp3 have to have default arg values for that, if parts doesn't have all the args? Alternatively (and untested!) hopefully providing all wav2mp3 args in order: def flactags(self): flacfiles = glob.glob('*flac') flacfiles.sort() for flac in flacfiles: cmd = 'metaflac --export-tags=- "%s"' % flac # collect available tags, then make arg list with '??' for missing values tagdict = dict((pair[0].strip().lower(), pair[1].strip()) for pair in (line.split('=', 1) for line in os.popen(cmd).readlines()) if len(pair)==2) args = [tagdict.get(tag, '??') for tag in 'artist, album, year, number, genre'.split()] self.wav2mp3(flac, *args) Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list