入力としてコマンドライン引数を取るスクリプトをデバッグしようとしています。引数は、同じディレクトリ内のテキストファイルです。スクリプトはsys.argvリストからファイル名を取得します。私の問題は、pycharmの引数を使用してスクリプトを起動できないことです。
「実行」>「構成の編集」メニューの「スクリプトパラメータ」フィールドに引数を入力しようとしました:
-s'file1.txt', -s'file2.txt'
しかし、うまくいきませんでした。引数付きでスクリプトを起動するにはどうすればよいですか?
追伸私はUbuntuにいます
PyCharmでは、パラメータはScript Parameters
に追加されましたが、それらは二重引用符で囲まれています""
、インタープリターを指定せずに-s
のようなフラグ。これらのフラグはInterpreter options
ボックスで指定されます。
スクリプトパラメータボックスの内容:
"file1.txt" "file2.txt"
インターピーターフラグ:
-s
または、視覚的に:
次に、評価する簡単なテストファイルを使用します。
if __== "__main__":
import sys
print(sys.argv)
提供したパラメーターを取得します(もちろん、スクリプト名を保持するsys.argv[0]
を使用):
['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
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"
何らかの未知の理由により、PyCharm Eduバージョンではコマンドライン引数を追加できないことに注意してください。 ProfessionalおよびCommunityエディションでのみ実行できます。
最初のパラメーターは、実行するスクリプトの名前です。 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
入力パラメータがコンマで区切られていることを理解するのに時間がかかったので、これが役立つことを願っています。
Pythonファイルの先頭に次を追加します。
import sys
sys.argv = [
__file__,
'arg1',
'arg2'
]
これで、Pythonスクリプトを簡単に右クリックできます。
Eduバージョンにも含まれていると思います。緑色の実線の矢印ボタン(実行)を右クリックして、[パラメーターの追加]を選択します。