一括変換cueファイル符号化


以前、ネット上でダウンロードした無損(flac、ape)の多くはディスク全体で、つまり1つのflacまたはapeファイルにcueレールファイルを組み合わせて、このファイルは異なる時間帯にどの曲があるかを記録しています.
これまでの操作はwindowsで行われていたため、linuxで開くと符号化の問題が発生します.ここでは簡単にスクリプトを書き、cueファイル符号化を一括変換します(srt字幕ファイルの変換にも適用されます).
pythonで書きました.bashではスペースの問題がうまく処理されません(ファイル名にスペースが表示されると、このパスがいくつかの部分に区切られます)
ここではencaという変換符号化のツール(直接zshrcの中でalias enca=「enca-L zh_CN-x utf-8」を使って、使いやすい点)
 1 #!env python2
 2 #coding:utf-8
 3 import os
 4 
 5 temp = ""
 6 filelist = os.popen("find . -name '*.cue'").readlines()
 7 for file in filelist:
 8     for ch in file:
 9         if ch == " ":
10             temp += "\ " 
11         else:
12             temp += ch
13 
14 
15 for file in temp.split("
"): 16 print file 17 os.system("enca -L zh_CN -x UTF-8 " + file)

これにより、サブディレクトリの下にあるすべてのcueファイルの符号化をUTF-8に簡単に変換し、簡単な変更で他のファイルにサポートします.
upgrade:
ファイル名にカッコ:()、英語が含まれている場合は、コマンドを実行できません.解決方法:
1.カッコを'./123"(1)".cue'
2.カッコの前にu 94を付けます.例えば「./123 u 94(1).cue」
u 94をshellに直接伝達するため,2つの方法をそれぞれ実験したが,2つ目の方法は通過できなかった.
改良されたコード:
 1 #!env python2
 2 #coding:utf-8
 3 import os
 4 
 5 temp = ""
 6 filelist = os.popen("find . -name '*.cue'").readlines()
 7 for file in filelist:
 8     for ch in file:
 9         if ch == " ":
10             temp += "\ " 
11         elif ch == "(":
12             temp += '"("'
13         elif ch == ")":
14             temp += '")"'
15         else:
16             temp += ch
17 
18 for file in temp.split("
"): 19 os.system("enca -L zh_CN -x UTF-8 " + file)