1) iTunesプレイリストをxmlファイルにエクスポート
2) plistlib で xml ファイルを読み込む
3) 曲の場所を抽出します。file://localhost/D:/music/Paul%20Desmond/Bossa%20Antigua/05%20-%20Cura%C3%A7ao%20Doloroso.m4a
4) %20 for ' '
urllib.unquote で などを修正し、file://localhost/ を削除します。
5)os.path.getsize
結果のファイル名で使用しようとすると、エラーが発生します
6) 純粋な ASCII ファイル名で問題なし
import os
import urllib
fn = 'D:/music/Paul%20Desmond/Bossa%20Antigua/05%20-%20Cura%C3%A7ao%20Doloroso.m4a'
path = urllib.unquote(fn)
os.path.getsize(path)
Traceback (most recent call last):
File "uni.py", line 9, in <module>
print os.path.getsize(path)
File "C:\program files\python27\lib\genericpath.py", line 49, in getsize
return os.stat(filename).st_size
WindowsError: [Error 2] The system cannot find the file specified: 'D:/music/Pau
l Desmond/Bossa Antigua/05 - Cura\xc3\xa7ao Doloroso.m4a'
getsize は正常に動作しますD:\music\Paul Desmond\Bossa Antigua\05 - Curaçao Doloroso.m4a.
ファイル名を getsize で動作するものに変更するにはどうすればよいですか? に変更できればうまく\xc3\xa7
いくので、単純なユニコードの問題がいくつか欠けていると思います。
http://docs.python.org/2/howto/unicode.html#unicode-filenamesos.stat()
には、「 Unicode ファイル名も受け入れるなどの os モジュールの関数」が含まれています。
win7でpython 2.7.2を使用しています。xml ファイルは utf8 です。