0

optparsePythonでUnixスタイルのワイルドカード引数を処理する正しい方法は何ですか? 私は持っている:

myscript.py:

from optparse import OptionParser
parser = OptionParser()
parser.add_option("--input", dest="input", default=None, nargs=1)
parser.add_option("--outdir", dest="outdir", default=None, nargs=1)
(options, args) = parser.parse_args()

私はできるようにしたい:

myscript.py --input *.txt --outdir mydir/

一致するすべてのファイルの内容を必ずしも読み取りたくはありません*.txtmyscript.py一部のスクリプトは、ファイルを開いたり読み取ったりする必要なく、ファイル名を他のプログラムに渡すだけなので、ファイル名にアクセスしたいと思います。--outdirワイルドカードに適したオプション (この場合は ) の後に他の引数を渡すことを許可しながら、ファイル名を返すイテレータを取得するにはどうすればよい--inputですか? ありがとう。

4

1 に答える 1

2

Unix シェルは*.txt、プログラムに渡される前に個別の引数に展開されます。Windows のコマンド インタープリターはそうしません。

最初に展開されていない環境を使用していると仮定すると、つまり、python prog.py '*.txt'たとえばを呼び出して、 glob.glob()を使用して展開を自分で行うことができます。

于 2013-02-24T00:07:53.160 に答える