はじめに
特定のフォルダにあるファイルの名前を以下の4種類の条件で取得するプログラムを紹介します。
- 拡張子ありで全てのファイル名を取得する
- 拡張子無しで全てのファイル名を取得する
- 拡張子ありで指定した拡張子を持つファイル名を取得する
- 拡張子無しで指定した拡張子を持つファイル名を取得する
フォルダ構成例
今回はread_filename.pyを用いて、test_data/read_filename以下にあるファイル名を全て取得します。
1 2 3 4 5 6 7 8 9 10 |
Program/ |-python/ | |-test_program/ | |-read_filename.py |-test_data/ |-read_filename/ |-markdown_00.md |-markdown_01.md |-text_00.txt |-text_01.txt |
拡張子ありで全てのファイル名を取得
プログラムと結果
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import os import glob # フォルダ内の全てのファイル名を拡張子ありで取得する def GetAllFilenameWithExt(): filenames = glob.glob("./*") filenames = [path[2:] for _,path in enumerate(filenames)] return sorted(filenames) if __name__ == '__main__': os.chdir("./../../test_data/read_filename") filename = GetAllFilenameWithExt() print(filename) |
このプログラムを実行すると以下のような結果になります。
1 |
['markdown_00.md', 'markdown_01.md', 'text_00.txt', 'text_01.txt'] |
拡張子無しで全てのファイル名を取得
プログラムと結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os import glob # フォルダ内の全てのファイル名を拡張子なしで取得する def GetAllFilenameWithoutExt(): filenames = glob.glob("./*") filenames = [path[2:] for _,path in enumerate(filenames)] for i, f in enumerate(filenames): # os.path.splitext(f)でファイル名と拡張子に分割 filenames[i], _ = os.path.splitext(f) return sorted(filenames) if __name__ == '__main__': os.chdir("./../../test_data/read_filename") filename = GetAllFilenameWithoutExt() print(filename) |
このプログラムを実行すると以下のような結果になります。
1 |
['markdown_00', 'markdown_01', 'text_00', 'text_01'] |
拡張子ありで指定した拡張子を持つファイル名を取得
プログラムと結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import os import glob # フォルダ内のspecific_extで指定した拡張子を持つファイル名を拡張子ありで取得する def GetAllFilenameSpecificExtWithExt(specific_ext): files = glob.glob("./*") files = [path[2:] for _,path in enumerate(files)] specific_filename = [] for i, f in enumerate(files): _, ext = os.path.splitext(f) if ext == specific_ext: specific_filename.append(f) return sorted(specific_filename) if __name__ == '__main__': os.chdir("./../../test_data/read_filename") # .txtを指定する filename = GetAllFilenameSpecificExtWithExt(".txt") print(filename) |
このプログラムを実行すると以下のような結果になります。
1 |
['text_00.txt', 'text_01.txt'] |
拡張子無しで指定した拡張子を持つファイル名を取得
プログラムと結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import os import glob # フォルダ内のspecific_extで指定した拡張子を持つファイル名を拡張子無しで取得する def GetAllFilenameSpecificExtWithoutExt(specific_ext): files = glob.glob("./*") files = [path[2:] for _,path in enumerate(files)] specific_filename = [] for i, f in enumerate(files): tmp_filename, ext = os.path.splitext(f) if ext == specific_ext: specific_filename.append(tmp_filename) return sorted(specific_filename) if __name__ == '__main__': os.chdir("./../../test_data/read_filename") # .txtを指定する filename = GetAllFilenameSpecificExtWithoutExt(".txt") print(filename) |
このプログラムを実行すると以下のような結果になります。
1 |
['text_00', 'text_01'] |
コメント