Pycharmとsys.argvの引数


92

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

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

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

しかし、それは機能しませんでした。引数を使用してスクリプトを起動するにはどうすればよいですか?

PS私はUbuntuを使用しています

回答:


111

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

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

"file1.txt" "file2.txt"

インターペッターフラグ:

-s

または、視覚的に:

ここに画像の説明を入力してください

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

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

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

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

それがうまくいったありがとう。さらに、 ''の代わりに ""引用符を使用する必要があることがわかりました。
YKY 2015年

3
これは役に立ちました。しかし、明確にするために、私のpythonスクリプトは、パラメーターとして2つのファイル名を取ります。1つは-r用、もう1つは-s用(または両方または1つまたはどちらでもない)です。そのため、スクリプトパラメータは[-p "prof_samples.txt" -r "resp_samples.txt"]として指定され、インタプリタオプションはありませんでした。
ハリー2016年

2
ないので、この答えは時代遅れだと思いますscript parameters
tisaconundrum 2017

これを確認した後、@ tisaconundrum、実行しているPyCharmのバージョンを教えてください。最新のもの(2017年9月1日にビルドされたPyCharm Community Edition 2017.2.3ビルド#PC-172.3968.37)をダウンロードしましたが、まだScript parametersオプションが表示されています。
Dimitris Fasarakis Hilliard 2017

パラメータ値を追加した後、コードを実行していない[適用]または[OK]ボタンをクリックします。構成を保存してコードを実行しても、Pycharm pythonコードでは引数が考慮されていません
Praveen L

78

このウィンドウに到達する方法を考えている他の人のために。方法は次のとおりです。

Select Run/Debug Configurations(の左側にあるここに画像の説明を入力してください)をクリックしてに移動すると、これにアクセスできますEdit Configurations。わかりやすくするために提供されているgif。

ここに画像の説明を入力してください


1
短いクリップは実際に役に立ちました-ありがとう!それは私がGUIのことについて嫌いなことです。そのコマンドラインに対し、イースターエッグ狩りのようなあなたはそれを入力します。
Shanemeister

これは、最高の賛成票よりも役に立ちました。ありがとう!
AakashBasu20年

13

PyCharm上のコミュニティまたはProfessional Editionの2019.1+

  1. メニューバーから[実行] -> [構成の編集]をクリックします
  2. [パラメータ]テキストボックスに引数を追加します(たとえばfile2.txt file3.txt、または--myFlag myArg --anotherFlag mySecondArg
  3. [適用]をクリックします
  4. [ OK]をクリックします

11

ジムの答え(コメントをするのに十分な担当者ポイントがありません)に加えて、コマンドラインで行うのとは異なり、PyCharmで指定された引数に特殊文字がエスケープされていないことを指摘したかっただけです。したがって、コマンドラインでは次のようにします。

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

PyCharmパラメーターは次のようになります:

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

5

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


3

最初のパラメーターは、実行するスクリプトの名前です。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

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


1

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

コマンドラインで実行するためのPycharmパラメーター

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.