2011-02-02 22 views
8

コマンドラインで実行するはずのpythonファイルxxxxxx.pyをダウンロードしました。これはpython xxxxxx.py filename1 filename2 です。これらの2つのファイルを引数として取る必要があります。IDLEを使ってPythonプログラムにコマンドライン引数を渡す?

私はIDLEを使ってこれらの引数を渡す方法があるのだろうかと思っていました。 sys.argvを設定する以外の方法はありますか?

ありがとうございました

+5

は、私は理解していません。 –

+0

あなたは、私がIDE上でウィンドウに役立つと思う提案をすることができます。 –

+0

実行時に引数をIDLEに渡さないでください。コマンドラインで簡単にコマンドを入力するのは簡単です。 'python xxxxxx.py filename1 filename2'をコマンドラインで使用することを止めるには?コマンドラインでコピーして貼り付けますか?または、上向き矢印を使用してコマンドラインで再度入力しますか? –

答えて

4

あなたはしてコマンドラインからこれを行うことができます:人々はIDLEが有用なものであることを考えに固執する理由

http://bugs.python.org/issue5680

+0

私は窓にいる場合。私のパスはC:\ Python26 ... etc \ idlelibなので、アイドル状態で走れるようになりました。しかし、スクリプトはどこか他の場所にあり、見つからないので、どうすればいいですか? –

+0

決して心配しないでください! C:\ Python26 \ Lib \ idlelibを高度なシステム設定のパスに追加しました。 –

+1

コード内でsys.argvを変更するだけです。たとえば、 'sys.argv = ['scriptname.py'、 'arg1'、 'arg2'、 'arg3']' – SomeGuyOnAComputer

6

あなたのPythonファイルの内容によって異なります。それはよく書かれている場合は、のように:

#! /usr/bin/env python 

def process(files): 
    for file in files: 
     # ... 

if __name__ == '__main__' 
    # some error checking on sys.argv 
    process(sys.argv[1:]) 
    sys.exit(0) 

次に、あなたは単にPythonのファイルをインポートし、それが好きで実行することができます:

import name_of_file 

# ... 
     name_of_file.process([file1, file2, file3]) 
# ... 

だから、それは本当にそれが書かれている方法によって異なります。それがうまく書かれていないのにあなたがそれを編集できるなら、私はそれをライブラリとして使用できるようにリファクタリングします。それ以外の場合は、サブプロセスモジュールを使用してプログラムを呼び出します。ここ

あなたはActivePythonの

のような別のIDEを試すことができそれとも、IDLEパッチを適用することができ、引数を置く

idle.py -r scriptname.py:

+1

私はpythonスクリプトを実行すると、実行時に引数を渡したいだけです。それを行う方法はありますか? –

関連する問題