に「LS」を呼び出すよりも、ディレクトリ一覧を取得する方法、およびいくつかのテストは、(両方os.popenを実行します)+(読み)とsubprocess.check_output()読み出すほぼ同等であるように見えますフォルダの内容os.popen()+ read()またはsubprocess.check_output()のいずれかの組み合わせを改善する方法はありますか?私はls
にフォルダの数を持っており、出力を読み、上記のいずれかを使用して似ていますが、プロファイリング結果によると、主要なボトルネックを表します。高速な検索後、サブプロセス
答えて
os.listdirおよび/またはos.walk、おそらくos.statファミリの機能を探しています。これらは、(Pythonバインディングに)ls
自体を使用するのと同じプリミティブなので、何でも、あなたがこれらを行うことができますls
の出力を解析することによって行うことができます。私はあなたがすべてos、os.pathを通じて慎重に読み、そしてstatモジュールが提供するお勧めします。外部プログラムを必要としないこともあります。
また、stat
, the underlying system callのドキュメントも読んでください。これはC指向ですが、os.stat
の理解に役立ちます。
ああ、os.listdirは私が必要とするものです!何らかの理由で、私はサブプロセスのドキュメントだけをチェックしました。ありがとうございました! – melnikovkolya
なぜあなただけos.listdir
と直接ディレクトリの内容を読んでいませんか?なぜあなたはls
にシェルする必要がありますか?ファイル名だけでなくファイルに関する詳細情報が必要な場合は、os.stat
も使用できます。あなた自身のためにサブプロセスを作成するよりも、システムコールを自分で行う方がはるかに効率的です。
完全にディレクトリトラバーサルを行うため、os.walk
があります。 shutil
moduleにもいくつかの便利な機能があります。
ありがとうございます。これを行う:) – melnikovkolya
'glob'モジュールは、必要なものに応じて便利なショートカットを提供します。 –
使用グロブ:
>>> from glob import glob
>>> glob('*')
構文は同じです。
glob('*.txt') # the same as "ls *.txt"
- 1. AudioInputStream - 高速検索
- 2. 高速ハッシュアルゴリズムの検索
- 3. DynamoDBの高速検索
- 4. Mysql対高速検索
- 5. JAXBオブジェクトの高速検索
- 6. 高速挿入検索
- 7. JTableの高速検索アルゴリズム
- 8. SQLサーバー2008高速検索
- 9. Python - 高速ファイル検索
- 10. 高速検索が可能な.NETクラス
- 11. C#邪悪な高速配列検索?
- 12. 検索は速く、検索は遅くSSMSの検索が高速です。
- 13. 後置ワイルドカード検索を高速化する
- 14. PHP、in_arrayおよび配列内の高速検索(最後)
- 15. jQuery/Javascript検索機能の高速化
- 16. Silverlightでの高速ビットマップレンダリングの検索
- 17. リストの高速検索<T>
- 18. 検索とマクロの高速化
- 19. 検索手順を高速化
- 20. mongodbコレクションの高速検索方法
- 21. QTableWidget行による高速検索
- 22. Visual Studioでの高速検索コード
- 23. リストビューの検索を高速化する
- 24. 検索クエリの高速化elasticsearch
- 25. `.vimrc`を追加した後、Vimの「高速」検索が無効になる
- 26. 高速の検索速度を持つノード埋め込みデータベース
- 27. R:ifelseベクトル化を使った高速なテーブル検索
- 28. Windows Phoneで大きなデータテーブルを高速検索する
- 29. 大きなneo4jグラフで未接続ノードを高速検索
- 30. OpenMPを使用したn回検索の高速化なし
あなたの質問のタイトルを、私が理解していることを明らかにするように修正しました。あなたの元のタイトルは、サブプロセスを使用していたものを示すものではありませんでした。 – zwol