Pythonプログラミングで数字順の名前のファイルの個数を調べる方法です。
調べるファイル名の前提条件は以下の通りです。
- 拡張子名が同じ
- 1から始まり、1ずつ増えるファイル名(例:1.bmp,2.bmp,3.bmp,・・・)
使用している環境はWindowsでPython 3.13です。
1始まりで個数制限ありの場合
■■■■■■■■■ ■
123456789 10
以下の内容のPythonスクリプトファイル(pyファイル)を作成しました。
test5.py : 動作確認用ファイル
python
import time
import exdef
exdef.numfileexist("","bmp")
print("この画面は30秒間表示されます。")
time.sleep(30)
exdef.py : 自作関数ファイル
python
import os
file_end = 10
def numfileexist(fiedir,exte):
for num in range(file_end) :
if not bool(os.path.isfile(fiedir + str(num+1) + "." + exte)):
print(fiedir + str(num+1) + "." + exte + "ファイルがありません。")
print(str(num) + "個のファイルが見つかりました。")
break
elif bool(os.path.isfile(fiedir + str(file_end) + "." + exte)):
print("チェック完了しました。")
break
return
ファイル1.bmp,2.bmp…を置いてtest5.pyを実行しました。range(10)なので1~10について調べます。
実行結果の例はこのように表示されました。
CLI
3.bmpファイルがありません。
2個のファイルが見つかりました。
この画面は30秒間表示されます。
1から順にファイルを探して、最初に見つからなかったファイルのファイル名が表示されます。
見つかったファイルの個数が次の行に表示されます。
time.sleep()で指定した秒数の30秒間ほど画面が表示されたままになり、その後閉じます。
0始まりで個数制限ありの場合
■■■■■■■■■■ ■
0123456789 10
0始まりの場合、以下のようになります。
exdef.py : 自作関数ファイル
python
import os
file_end = 10
def numfileexist(fiedir,exte):
for num in range(file_end+1) :
if not bool(os.path.isfile(fiedir + str(num) + "." + exte)):
print(fiedir + str(num) + "." + exte + "ファイルがありません。")
print(str(num) + "個のファイルが見つかりました。")
break
elif bool(os.path.isfile(fiedir + str(file_end) + "." + exte)):
print("チェック完了しました。")
break
return
ファイル1.bmp,2.bmp…を置いてページ上部のtest5.py を実行しました。
実行結果の例はこのように表示されました。
CLI
10.bmpファイルがありません。
10個のファイルが見つかりました。
この画面は30秒間表示されます。
1始まりで個数制限なしの場合
■■■■■■■■■ ■ ・・・
123456789 10 ・・・
for~range()文からwhile文に変更するときは以下のようになります。
exdef.py : 自作関数ファイル
python
import os
def numfileexist(fiedir,exte):
num = 1
while True:
if not bool(os.path.isfile(fiedir + str(num) + "." + exte)):
print(fiedir + str(num) + "." + exte + "ファイルがありません。")
print(str(num - 1) + "個のファイルが見つかりました。")
break
num += 1
return
ファイル1.bmp,2.bmp…を置いてページ上部のtest5.py を実行しました。
実行結果の例はこのように表示されました。
CLI
3.bmpファイルがありません。
2個のファイルが見つかりました。
この画面は30秒間表示されます。