ここで見つけた古いPowershellスクリプトを書き直すことを無駄にしています - "$_.extension -eq" not working as intended? - Python.IにはPythonの経験や知識がなく、私の 'script'は混乱していますが、欠落しているのは、 'mp3s'を含んでいないフォルダや指定したファイルタイプを無視できるようにすることです。ここで私はこれまで持っているものである -特定のファイルタイプのフォルダを無視する
import os, os.path, fnmatch
path = raw_input("Path : ")
for filename in os.listdir(path):
if os.path.isdir(filename):
os.chdir(filename)
j = os.path.abspath(os.getcwd())
mp3s = fnmatch.filter(os.listdir(j), '*.mp3')
if mp3s:
target = open("pls.m3u", 'w')
for filename in mp3s:
target.write(filename)
target.write("\n")
os.chdir(path)
私は(可能であれば)行うことができるようにしたいすべてのスクリプトは、それが「MP3ファイル」を含まないものを無視して、フォルダをループされている場合ということです、 'pls.m3u'を削除します。私はデフォルトで 'pls.m3u'を作成した場合、スクリプトが正しく動作するようにしかできませんでした。問題は、例えば '.jpg'ファイルのみを含むフォルダに空の 'pls.m3u'ファイルをたくさん作成することです。あなたはその考えを得る。
私はこのスクリプトがPythonユーザーにとっては冒涜的だと確信していますが、どんな助けでも大歓迎です。
[fnmatch](http://docs.python.org/library/fnmatch.html#module-fnmatch)は本当に便利です: 'mp3s = fnmatch.filter(os.listdir (フォルダ)、 '* .mp3') ' –
@ THC4k私は"リテラル "として可能な限り変更しようとしていましたが、これはos.path.splitextではなくfnmatchを使うのに適していると私は同意します'。 (下付き文字を使用することは特に不満です) –
私は、私が行った変更を反映するために私の元の投稿を編集しました。私はあなたの最初の例を完全に理解していませんでしたが、私はあなたの2番目の例がどのように動作するかを見ることができました。残念ながら、私は、行 '== ".mp3"]'に関して構文エラーを受けていましたので、代わりにfnmatchの提案を実行しました。両方のおかげであなたの助けになりました。 – gavin19