今回はglobではなくos.listdirでファイルリストを取得する方法を紹介します。
最後にも紹介しますが、この関数とwxPythonを組み合わせてファイルマネージャーをつくることができます。
→ https://programming-self-study.blogspot.com/2021/06/wxpython-filem.html
#コード
import os
filelist = os.listdir("C:\\Users\\")
for file in filelist:
print(file)
#.NET v2.0
#.NET v2.0 Classic
#.NET v4.5
#.NET v4.5 Classic
#All Users
#Classic .NET AppPool
#Default
#Default User
#DefaultAppPool
#desktop.ini
#...
こんな感じで取得します。
#globとの違い
まず、globはC:\\Users\\*.txt
のように拡張子などをを指定してできます。
が、別のことも調べていきましょう、
##出力内容の違い
###os.listdir
.NET v2.0
.NET v2.0 Classic
.NET v4.5
.NET v4.5 Classic
All Users
Classic .NET AppPool
Default
Default User
DefaultAppPool
desktop.ini
...
ファイル名のみを出力しています。
###glob
C:\Users\All Users
C:\Users\Classic .NET AppPool
C:\Users\Default
C:\Users\Default User
C:\Users\DefaultAppPool
C:\Users\desktop.ini
...
パス全体を出力しています。あとなんか.NETなどのフォルダが表示されていません。
##速度の違い
比較に利用したコードはこんな感じです。
import glob
import os
import time
#glob
s = time.time()
filelist = glob.glob("C:\\Windows\\System32\\*")
print(time.time()-s)
#listdir
s = time.time()
filelist = os.listdir("C:\\Windows\\System32\\")
print(time.time()-s)
###glob
0.04687190055847168
###listdir
0.0
あくまでも自分の環境で実行した場合です。
実行すると、その都度速度が変わりますが、listdirのほうがほんの少しはやいのがわかります。
#おわりに
あえてblogではなくlistdirを使わなければいけないというわけではありませんでした。
これらの関数とwxPythonを組み合わせてファイルマネージャーをつくってみました。
→ https://programming-self-study.blogspot.com/2021/06/wxpython-filem.html
↑の記事はファイルリスト取得してListCtrlに反映、あとはリストクリック時の設定をするだけのシンプルなものです。