[python] Pycharm 및 sys.argv 인수

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

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

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

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

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



답변

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']


답변

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

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

여기에 이미지 설명 입력


답변

PyCharm Community 또는 Professional Edition 2019.1+ :

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


답변

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

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 버전에서만 수행 할 수 있습니다.


답변

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

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

입력 매개 변수가 쉼표로 구분되어 있는지 알아내는 데 언젠가가 걸렸으므로 도움이되기를 바랍니다.


답변

Python 파일 맨 위에 다음을 추가합니다.

import sys

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

이제 Python 스크립트를 마우스 오른쪽 버튼으로 클릭하면됩니다.