web-dev-qa-db-ja.com

Pycharmおよびsys.argv引数

入力としてコマンドライン引数を取るスクリプトをデバッグしようとしています。引数は、同じディレクトリ内のテキストファイルです。スクリプトはsys.argvリストからファイル名を取得します。私の問題は、pycharmの引数を使用してスクリプトを起動できないことです。

「実行」>「構成の編集」メニューの「スクリプトパラメータ」フィールドに引数を入力しようとしました:

-s'file1.txt', -s'file2.txt'

しかし、うまくいきませんでした。引数付きでスクリプトを起動するにはどうすればよいですか?

追伸私はUbuntuにいます

66
YKY

PyCharmでは、パラメータはScript Parametersに追加されましたが、それらは二重引用符で囲まれています""、インタープリターを指定せずに-sのようなフラグ。これらのフラグはInterpreter optionsボックスで指定されます。

スクリプトパラメータボックスの内容:

"file1.txt" "file2.txt"

インターピーターフラグ:

-s

または、視覚的に:

enter image description here

次に、評価する簡単なテストファイルを使用します。

if __== "__main__":
    import sys
    print(sys.argv)

提供したパラメーターを取得します(もちろん、スクリプト名を保持するsys.argv[0]を使用):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']

このウィンドウに到達する方法について疑問に思っている他の人のために。方法は次のとおりです。

これにアクセスするには、Select Run/Debug Configurationsenter image description here )そしてEdit Configurationsに移動します。わかりやすくするために提供されたgif。

enter image description here

53
tisaconundrum

Jimの回答(コメントを作成するのに十分な担当者がいません)に加えて、PyCharmで指定された引数はnotで特殊コマンドがエスケープされていることを指摘したかっただけです。ライン。そのため、コマンドラインでは次のようにします。

python mediadb.py  /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png

pyCharmパラメーターは次のとおりです。

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"
9
Paul Miller

何らかの未知の理由により、PyCharm Eduバージョンではコマンドライン引数を追加できないことに注意してください。 ProfessionalおよびCommunityエディションでのみ実行できます。

4
Jan Bodnar

最初のパラメーターは、実行するスクリプトの名前です。 2番目のパラメーター以降は、コマンドラインから渡すパラメーターです。以下はテストスクリプトです。

from sys import argv

script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second

入力パラメーターを渡す方法は次のとおりです。「スクリプトへのパス」、「最初のパラメーター」、「2番目のパラメーター」

スクリプトへのパスが/home/my_folder/test.pyであるとしましょう。出力は次のようになります。

Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter

入力パラメータがコンマで区切られていることを理解するのに時間がかかったので、これが役立つことを願っています。

2

Pythonファイルの先頭に次を追加します。

import sys

sys.argv = [
    __file__,
    'arg1',
    'arg2'
]

これで、Pythonスクリプトを簡単に右クリックできます。

1
Ahmed

Eduバージョンにも含まれていると思います。緑色の実線の矢印ボタン(実行)を右クリックして、[パラメーターの追加]を選択します。

0
Py Learner

私にとってはeduバージョンで動作します。インタープリターオプションで-sオプションを指定する必要はありませんでした。

Pycharm parameters for running with command line

0
Awaa