iPodとPython:アルバムを年代順に並べ替えます

問題



Appleが製品を単純化するのに苦労しているように思えることもあります。 一方で、これは素晴らしいことですが、他方では非常に残念です。 実際、追加の設定は、製品を使用して最初の数週間で私たちの生活を複雑にしますが(慣れるまでは理解できます)、後で自分用にカスタマイズして、夢のガジェット(またはプログラム)を取得できます。



年ごとのアルバム あなたがiPod-aの幸せな所有者であれば、おそらくその上にある(つまり、プレーヤーにある)アルバムがすべて厳密にアルファベット順にソートされていることに気づいたでしょう。 そして他の方法はありません。 そして、あなたのための設定や専門家の改造はありません。 彼らは「アルファベット順」、つまりアルファベット順で言った。 注目に値するもの-iTunesでは、このようなボタン( Year by Album )があります。 しかし、そこに私は彼女を最も必要としなかった。



幸いなことに、この問題(および個別にダウンロードされたエピソードを既存のiTunesポッドキャストに追加する問題)には解決策があります。 私たちが望むほど単純ではありませんが、非常にエキサイティングです。





おでこを決める



完全にシンプルですが、あまり洗練されていないソリューションは、最初の数秒で最初に現れます。 すべてのアルバムについてのみ、タグ%album%のコンテンツを%year%-%album%に変換し、問題を解決しました。 また、必要に応じて整理され、iPod-eで直接年を確認することもできます(この種の準備がなければ、プレーヤーでのアルバムのリリース年はわかりません)。



おそらくこのオプションはあなたに合うでしょうが、それは私には不満に思えました。 ディスク上のフォルダーは1つ(私は以前は%%%%-%album%という形式で呼び出していました)、もう1つはiPod-eのalbumartを含むスマートアルバムです。 それに加えて、アルバムがリリースされた特定の年には興味がありません。 私はただ、どのアルバムがこのグループまたはそのグループの初期の作品に属し、最近リリースされたアルバムを知り、グループが時間とともにどのように変化し、そのスタイルがどのように変化したかを知りたいだけです。 これがまさに問題をより詳細に研究し、その解決策を探すきっかけになった理由です。



iTunes



完璧なプログラムはありません。 iTunesも例外ではありません。 それでも、アプリケーションを使用するのは便利で快適です。 少なくともそれが、私がこのAppleのシンプルさについに思いついた数ヶ月の使用の後、私が考え始めた方法です。 そして、iTunesがある程度問題を解決するのに役立つ何かを持っていることが判明したとき、私はついにiTunesの代替品を見つけるという考えを取り除きました。



彼は言った:「行こう!」



エントリの背後にあり、最終的に行動を開始します。 アルバムのすべてのトラックを選択して、コンテキストメニューを開きます。 ここには、選択したトラックに関するすべての情報を隠すすばらしいGet Infoアイテムがあります。 現在、[ 並べ替え ]タブに関心があります。

並べ替えタブ



ドキュメントでこれらのフィールドの目的を指定しませんでしたが、私の人生の経験では、アルバムの並べ替えフィールドに入力した場合、iTunesでアルバムを並べ替える場合( 「アルバム年」ではなく、アルバム列で「アルバム」が選択されている場合)キーとして機能します(他のソートフィールドと同様)。 そして、最も重要なことは、プレーヤー自体でアルバムを直接並べ替えるときに同じキーが使用されることです。 これが必要なものです。 指定されたフィールドに「2007-Are You Listening」と入力し、すべてがスムーズに進んだことを喜んでください。 これで、正確に1つのアルバムが作成され、時系列順に(単独で)ソートされます=)



そして、先は永遠です



問題はすでに解決されているようです。 しかし、実際にはまだ始まったばかりです。 プレーヤーをn番目のギガバイトまで解放した後、AppleはApple Storeでそれほど多くの音楽を購入できるとはまったく予想していなかったはずです(他のソースはおそらく考慮していなかったでしょう)。 あるいは、いつか誰かがすべてのアルバムを日付で並べ替えたいとは思わなかったかもしれません。 実際のところ、ライブラリ内の他の500枚のアルバムでこの手順を繰り返すことはできません。 最近のC#パズルで述べられているように、「人間に機械の仕事をさせないでください。」



そして、Pythonがシーンに登場します



ライブラリを処理するために使用します。 一度に。



判明したように、iTunesはmp3ファイルのTSOAタグの「 アルバムの並べ替え 」フィールドの値を保存します(iTunesのその他のタグについては、 こちらを参照してください )。 これを知って、ファイルにこのタグを適切に入力し、iTunesライブラリに追加します。



id3タグを操作するためのPythonライブラリは多くありませんでしたが、少数ではありませんでした。 私の選択は変異原にかかっていました (他のオプションはこちらにあります )。



Mutagenでは、十分な数のオーディオ形式(ASF、FLAC、M4A、Monkey's Audio、MP3、Musepack、Ogg FLAC、Ogg Speex、Ogg Theoraなど)のメタデータを操作できます。mp3ファイルのid3タグに興味があります。 ライブラリには、 ID3EasyID3の 2つのインターフェイスがあります 。 違いは必要ないと思います。 最初は最初のゲームを試しましたが、2番目のゲームの可能性は十分であることがわかりました。



実際にコード



Python-eプログラミングでの私の経験は無限になりがちですが、今のところはほぼゼロです。 私は社会に見せることが恥ずかしくないような方法ですべてを書き込もうとしましたが、それが十分にうまくいったかどうかはわかりません。 したがって、私は友好的な形で表現された有益なコメントに感謝します。



アルゴリズムについては非常に明白です。必要なファイルを調べ 、リリース年とアルバム名をタグから取得し、それに応じてTSOAタグを記入します。 私は、 %artist%-%year%-%album%という形式に最も満足しているという結論に達しました。 このTSOAタグの値を使用すると、アルバムはアーティスト、次に年、アルファベット順にソートされます(突然、ある年にお気に入りのバンドが複数のアルバムに広がった場合)。 Pythonは非常にわかりやすい構文を持っているため、Pythonに慣れていない場合でも、以下のスクリプトの好みを少し調整しても問題はありません。



5000トラックの処理プロセスでは多くのことが発生する可能性があるため、進行状況を確認するための補助出力を少し追加し、ファイルにタグがないことに関するエラーを出力するためのログを追加しました。 結局のところ、アーティストやタグをタグに入れずにファイルをiTunesに追加するのは悲惨なことなので、iPodに移行する準備がまだ整っていないファイルを見つけることは有益です。



私はdocstringで怠けていましたが、コメントでコードを希釈しました。 これが、Pythonにあまり詳しくない人たちを方向づけるのに役立つことを願っています。



コード:

Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  1. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  2. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  3. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  4. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  5. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  6. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  7. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  8. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  9. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  10. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  11. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  12. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  13. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  14. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  15. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  16. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  17. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  18. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  19. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  20. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  21. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  22. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  23. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  24. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  25. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  26. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  27. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  28. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  29. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  30. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  31. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  32. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  33. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  34. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  35. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  36. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  37. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  38. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  39. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  40. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  41. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  42. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  43. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  44. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  45. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  46. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  47. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  48. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  49. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  50. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  51. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  52. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  53. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  54. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  55. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  56. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  57. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  58. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  59. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  60. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  61. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  62. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  63. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  64. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  65. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  66. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  67. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  68. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  69. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  70. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  71. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  72. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  73. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();



  74. Copy Source | Copy HTML #!usr/bin/env python # -*- coding: utf-8 -*- # Created by KL-7 import logging import sys from os import path from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3NoHeaderError # totalfiles = 0 # def error (err): # - logging .basicConfig(filename= "error.log" , level= logging .ERROR) logging . error (err) # tagname audio def gettag (audio, tagname): taglist = audio.get(tagname, None) if taglist: return taglist[ 0 ] else : return "" # TSOA def fill_tsoa (fpath): audio = EasyID3(fpath) artist = gettag (audio, "artist" ) if not artist: error ( "Missing artist in %s" % fpath) album = gettag (audio, "album" ) if not album: error ( "Missing album in %s" % fpath) year = gettag (audio, "date" ) if not year: error ( "Missing year in %s" % fpath) # TSOA tsoa = "%s -- %s - %s" % (artist, year, album) # EasyID3 . # TSOA albumsort. audio[ "albumsort" ] = tsoa audio.save() def fill_rec (root): # root # dirname. # fnames - dirname. # arg , . def process (arg, dirname, fnames): for fname in fnames: # Unicode fname = fname.decode( "cp1251" ) name, ext = path.splitext(fname) fname = path.join(dirname, fname) if path.isfile(fname) and ext.lower() == ".mp3" : try : fill_tsoa (fname) global totalfiles totalfiles = totalfiles + 1 print fname except ID3NoHeaderError: error ( "No tags in %s" % fname) # root # process; None # process . path.walk(root, process , None) if __name__ == "__main__" : # , , # . if sys .argv[ 1 :]: for dirname in sys .argv[ 1 :]: fill_rec (dirname) # , . else : fill_rec ( "." ) print "\nTotal files: %d" % totalfiles raw_input ();







スクリプトを音楽のあるディレクトリにコピーし、パラメータなしで実行できます。 この場合、 現在のディレクトリとすべてのサブディレクトリ内のすべてのmp3ファイルが処理されます。 また、必要なディレクトリのリストを自分でパラメータの形式でスクリプトに渡すことができます(この場合もサブディレクトリが処理されます)。



スクリプトが完了すると(それほど時間はかかりません)、iTunesライブラリのデータは更新されたままになります。 これらのファイルをまだ追加していない場合は、今がその時です。 iTunesにすでに存在するファイルのタグを編集した場合は、iTunesウィンドウでタグを選択し、コンテキストメニューから[情報を見る]を開き、 何も編集せずに[ OK ]をクリックするだけです。 iTunesは、選択したファイルからすべてのタグを更新するだけです。



現状のまま



スクリプトに関するいくつかの注意:

  1. ライブラリを評価する場合は、最初にいくつかのファイルでスクリプトをテストする必要があります。何が起こるかわかりません。 コレクション全体のバックアップがあったので、心配していませんでした。
  2. TSOAタグに長すぎる行を追加すると問題が発生する可能性があります(mp3ファイルのタグブロックの内部構造に関するドキュメントを読みませんでした)。 ライブラリで会ったことがあったTSOAタグの一番長い行(私のformat%artist%-%year%-%album%を含む)には93文字が含まれていました。 タグはファイルに正常に保存され、すべて問題ありませんでした。
  3. このスクリプトは、英語の名前を持つ5000個のファイルを問題なく処理しました。 ライブラリにロシアの音楽はありませんでしたが、テストでは、タイトルにキリル文字が含まれるファイルのタグが正常に追加されたことが示されました。 ロシア語のファイルの名前をコンソール(cmd)で読み取り可能な形式で表示するには、名前のデコードを追加する必要がありました(58行目)。 他の軸のように、Windowsの下で-私は知りません。 したがって、ロシア語のファイル名を扱っていない場合は、この行をコメントアウトすることをお勧めします。
  4. ドイツ語や発音区別符号付きのファイル名は、私が個人的に処理することを望みませんでした。 私はまだ問題を解決する方法を理解していません。 問題は、ファイルが「Verführer.mp3」などと呼ばれ、スクリプトが「Verf u hrer.mp3」と呼ばれることです。 もちろん、フォルダにはその名前のファイルはありません。 繰り返しますが、これはすべてWindowsです。 個人的には、タグに発音区別記号があります(Unicodeがあり、すべてが正常です)が、ファイル名には発音区別記号がありません。 したがって、すべてがうまくいった。


あとがき



まだコメントや問題がある場合-書き込みます。 エンコードの問題を解決する方法について提案がある場合は、さらに速く記述してください。 正直に言うと、すべてのシステムとすべての言語で、私の意識的な生活はすべてエンコーディングに常に問題を抱えていました。 たぶん私たちは彼らとあまりにも違うのかもしれませんし、多分私はただ座ってそれらすべてをうまく処理するべきです。 いつか絶対にやるよ。



今のところすべてです。 誰かがこのスクリプトを有用であるか、少なくともおもしろいと思ったら嬉しいです。



PS

sc.meが22行目のゼロの前にスペース追加するように促した理由を教えてください 。 ソースにはありませんでした。 この場所でnbspを削除するHTMLの場合、0がスペースとともに消えます。これは良くありません。



All Articles