Pycharm 및 sys.argv 인수


89

명령 줄 인수를 입력으로 사용하는 스크립트를 디버깅하려고합니다. 인수는 동일한 디렉토리에있는 텍스트 파일입니다. 스크립트는 sys.argv 목록에서 파일 이름을 가져옵니다. 내 문제는 pycharm에서 인수로 스크립트를 시작할 수 없다는 것입니다.

"실행"> "구성 편집"메뉴의 "스크립트 매개 변수"필드에 다음과 같이 인수를 입력하려고했습니다.

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

그러나 그것은 작동하지 않았습니다. 인수로 스크립트를 시작하려면 어떻게해야합니까?

추신 나는 우분투에 있습니다

답변:


107

PyCharm에서는 매개 변수가에 추가 Script Parameters되지만 큰 따옴표로 묶여 "" 있고 -s. 이러한 플래그는 Interpreter options상자에 지정되어 있습니다.

스크립트 매개 변수 상자 내용 :

"file1.txt" "file2.txt"

Interpeter 플래그 :

-s

또는 시각적으로 :

여기에 이미지 설명 입력

그런 다음 간단한 테스트 파일을 사용하여 다음을 평가합니다.

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

우리가 제공 한 매개 변수를 얻습니다 ( sys.argv[0]물론 스크립트 이름을 가지고 있음) :

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

감사합니다. 또한 ''대신에 ""따옴표를 사용 했어야합니다.
YKY

3
이것은 도움이되었습니다. 그러나 명확히하기 위해 내 파이썬 스크립트는 매개 변수로 두 개의 파일 이름을 사용합니다. 하나는 -r이고 다른 하나는 -s입니다 (또는 둘 다 또는 둘 다 또는 둘 다). 그래서 내 스크립트 매개 변수는 인터프리터 옵션없이 [-p "prof_samples.txt"-r "resp_samples.txt"]로 지정되었습니다.
해리

2
나는 더 없기 때문에이 대답은 유효 기간이 생각script parameters
tisaconundrum

@tisaconundrum을 확인한 후 실행중인 PyCharm 버전을 알려주시겠습니까? 방금 최신 버전 (PyCharm Community Edition 2017.2.3 빌드 # PC-172.3968.37, 2017 년 9 월 1 일에 빌드 됨)을 다운로드했지만 여전히 Script parameters옵션이 표시됩니다.
Dimitris Fasarakis Hilliard

매개 변수 값을 추가 한 후 APPLY 또는 OK 버튼을 클릭하면 코드가 실행되지 않습니다. 구성을 저장하고 코드를 실행하면 Pycharm 파이썬 코드에서 여전히 인수가 고려되지 않습니다
Praveen L

75

이 창으로가는 방법을 궁금해하는 다른 사람들을 위해. 방법은 다음과 같습니다.

Select Run/Debug Configurations(의 왼쪽에 있음 여기에 이미지 설명 입력) 을 클릭하고으로 이동하여 액세스 할 수 있습니다 Edit Configurations. 명확성을 위해 제공되는 gif.

여기에 이미지 설명 입력


1
짧은 클립이 실제로 도움이되었습니다. 감사합니다! 그것이 내가 GUI에 대해 싫어하는 것입니다. 부활절 달걀 사냥과 같지만 명령 줄에 입력하면됩니다.
Shanemeister

이것은 최고의 찬성 투표보다 더 도움이되었습니다. 감사!
Aakash Basu

12

PyCharm Community 또는 Professional Edition 2019.1+ :

  1. 메뉴 표시 줄에서 실행 -> 구성 편집을 클릭 하십시오.
  2. 매개 변수 텍스트 상자에 인수를 추가합니다 (예 file2.txt file3.txt: 또는 --myFlag myArg --anotherFlag mySecondArg).
  3. 적용을 클릭 하십시오
  4. 클릭 OK

11

Jim의 답변 (주석을 작성하기에 충분한 담당자 포인트가 아님) 외에도 PyCharm에 지정된 인수 에는 명령 줄에서 수행하는 것과 달리 특수 문자가 이스케이프 되지 않았 음 을 지적하고 싶었습니다 . 따라서 명령 줄에서는 다음을 수행합니다.

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

PyCharm 매개 변수는 다음과 같습니다.

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

5

알 수없는 이유로 PyCharm Edu 버전에서 명령 줄 인수를 추가 할 수 없습니다. Professional 및 Community 버전에서만 수행 할 수 있습니다.


3

첫 번째 매개 변수는 실행하려는 스크립트의 이름입니다. 두 번째 매개 변수부터는 명령 줄에서 전달하려는 매개 변수입니다. 다음은 테스트 스크립트입니다.

from sys import argv

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

입력 매개 변수를 전달하는 방법은 다음과 같습니다. '스크립트 경로', '첫 번째 매개 변수', '두 번째 매개 변수'

스크립트 경로가 /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.