3

これはばかげた質問であり、私はそれを知っていますが、何らかの理由で、WindowsコマンドプロンプトからPythonを実行するための便利なチュートリアルが見つからないため、皆さんに質問する必要があります。1つのディレクトリにあるFY*.txtまたはWS*.txtで始まるすべてのファイルに対して実行する必要のあるスクリプトがあります。コマンドプロンプトからディレクトリに移動してみました

for file in FY*.txt; do python my_script.py

これは、現時点では「ファイル」が予期しないことを通知するだけです。私も試しました

python my_script.py FY1.txt FY2.txt FY3.txt

import sys
inputfilenames=sys.argv[1:27]

for name in inputfilenames:
    datafile=open(name,'r')

Pythonスクリプト自体でファイルを開く方法として。これは、すべてではなく、1つのファイルでのみスクリプトを実行するようです。

私は無知であることをお詫びします。コマンドプロンプトを使用してPythonを実行する方法がわかりません。答えだけでなく、誰かがチュートリアルの推奨事項を持っているなら、私は非常に、非常に感謝します。

4

1 に答える 1

5

その最初の例が何であるかはよくわかりませんが、標準のWindowsコマンドプロンプトからそれを行うには、次のようなものを使用できます。

for %G in (FY*.txt); do python my_script.py %G

このようなことを行う場合は、コードに次のようなものが必要になります。

with open(sys.argv[1], 'r') as f:
    do_something_with(f)

fileinputまたは、 2番目の例のように、モジュールを使用してファイルのリストを取得し、それらを処理することを検討することもできます。つまり、スクリプト内には次のようなものがあります。

for line in fileinput.input():
    do_something_with(line)

または、ワイルドカード式を引数にしてglobモジュールを使用すると、次のように実行できます。

python my_script.py FY*.txt

次に、スクリプトで次のようにします。

for file in glob.glob(sys.argv[1]):
     with open(file, 'r') as f:
         do_something_to(f)

globは、複数の引数で実行できます。

for files in([glob.glob(arg) for arg in sys.argv[1:]]):
    for file in files:
        with open(file, 'r') as f:
            do_something_to(f)

これにより、以下を実行できます。

python my_script FY*.txt WS*.txt
于 2012-08-09T16:23:09.797 に答える