Windows でアスタリスク付きの複数のファイルを Python シェルに渡す 質問する

Windows でアスタリスク付きの複数のファイルを Python シェルに渡す 質問する

私は Google の Python 演習に取り組んでおり、コマンドラインからこれを実行できる必要があります。

python babynames.py --summaryfile baby*.html

pythonPython シェルはどこにありますか、babynames.pyは Python プログラム、--summaryfileはプログラムによって解釈される引数babynames、はbaby*.html式に一致するファイルのリストです。ただし、これは機能せず、問題が Windows コマンド シェルか Python のどちらにあるかわかりません。式はbaby*.htmlファイルの完全なリストに拡張されておらず、代わりに厳密に文字列として渡されています。このような方法で複数のファイルを Python プログラムに渡すことはできますか?

ベストアンサー1

Windows のコマンド インタープリターは、UNIX シェルのように、実行されたプログラムまたはスクリプトにワイルドカードを渡す前にワイルドカードを展開しません。

python.exe -c "import sys; print sys.argv[1:]" *.txt

結果:

['*.txt']

解決策:globモジュールを使用します。

from glob import glob
from sys import argv

for filename in glob(argv[1]):
    print filename

おすすめ記事