Pythonで特定条件のファイルを検索
後輩の質問に答えたついでにエントリーとして公開します。 「指定したフォルダ以下で最後の3文字が".py"であるようなファイルを探す」という程度のスクリプトなら数行で書けます。
import os for (root, dirs, files) in os.walk(r"c:\home\Projects"): for f in files: if f[-3:] == ".py": print f, root
これを利用して、「特定のフォルダ以下にある全部のresult.txtを、"そのフォルダの名前.txt"という名前でresultFilesというフォルダにコピー」というスクリプトを作ると以下のようになります。
import os, shutil
for (root, dirs, files) in os.walk(r"."):
print root
for f in files:
if f == "result.txt":
folderName = os.path.split(root)[-1]
shutil.copy(
os.path.join(root, f),
os.path.join("resultFiles", "%s.txt" % folderName))
print "ok."