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.
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 스크립트를 마우스 오른쪽 버튼으로 클릭하면됩니다.
PyCharm CE 2019.1+에서 :
- 메뉴 표시 줄에서 실행-> 구성 편집을 클릭하십시오.
- 매개 변수 텍스트 상자에 인수를 추가합니다 (예
file2.txt file3.txt
: 또는--myFlag myArg --anotherFlag mySecondArg
). - 적용을 클릭하십시오
- 확인 클릭
Edu 버전에도 포함되어 있다고 생각합니다. 녹색 화살표 버튼 (실행)을 마우스 오른쪽 버튼으로 클릭하고 "매개 변수 추가"를 선택하십시오.
나를 위해 edu 버전에서 작동합니다. 인터프리터 옵션에 -s 옵션을 지정할 필요가 없었습니다.
참고 URL : https://stackoverflow.com/questions/33102272/pycharm-and-sys-argv-arguments
'Development Tip' 카테고리의 다른 글
판다 집계 수 구별 (0) | 2020.10.28 |
---|---|
Java에서 오토 박싱과 언 박싱을 사용하는 이유는 무엇입니까? (0) | 2020.10.28 |
'CELL TO THE LEFT'를 참조하는 Excel 수식 (0) | 2020.10.28 |
기본 열거 형 클래스 상속 (0) | 2020.10.28 |
HTML 입력 필드를 클릭해도 초점이 맞지 않습니다. (0) | 2020.10.28 |