개요
파이썬 + 이것이 코딩테스트다(파이썬편)으로 PCCP(프로그래머스 코딩전문역량인증시험) 준비를 시작했다. 파이썬 기본 문법-입출력 부분을 공부하던 중 책처럼 입출력이 되지 않았다..! 분명히 이전 내용들은 vscode 기준으로 ctrl+alt+N을 누르면 실행되어 콘솔창에 결과가 출력되었는데 입출력 부분은 실행되기만 하고 결과는 출력되지 않았다. 고민의 시작...
1. launch.json 파일 생성 + Debug 모드로 실행 -> 입출력 텍스트 파일로 자동 조작
그냥 실행하면 아무 것도 출력되지 않는 문제부터 해결해야 겠다고 생각했다. 뭐라도 출력되어야 해결을 하든 말든 하지! 구글링 해보니 알고리즘 문제를 풀 때는 입출력이 필수이므로 단순 실행이 아닌 디버그 모드로 실행해야 하고, 이를 위해 launch.json 파일을 만들어야 하는 것을 알았다.
- 벌레 + 재생 표시 있는 버튼을 클릭하면 왼쪽 그림과 같은 창이 뜨고 자연스럽게 launch.json 파일을 만들 수 있다.
- 일단 launch.json 파일에 아무 것도 입력하지 않고, 다시 벌레 + 재생 표시 있는 버튼을 클릭해보면 디버그 모드로 실행할 수 있는 빨간색 동그라미 버튼이 뜬다. 누르면 디버그 모드로 실행된다.
꼬리 문제 1
- 콘솔창에서만 입출력을 받는다면 테스트를 해보기 위해 실행할 때마다 입력값을 넣어주어야 한다. 번거롭다!
- 구글링 해보니 알고리즘 공부 + 코테 준비를 하는 다수가 입력을 input.txt로 받고, 출력을 output.txt로 자동으로 되도록 환경설정 해놓고 있었다. 아무래도 나도 하는게 효율적이겠군.. 다시 고민의 시작...
2. launch.json 파일 설정 -> redirection 되지 않는 문제
구글링 해보니 입출력을 txt 파일로 자동화하기 위한 최초 세팅은 launch.json 파일 설정이었다. 핵심 코드는 다음과 같다. input.txt에서 값을 넣고(<), output.txt로 값을 빼라는(>) 의미이다.
"args": ["<", "input.txt", ">", "output.txt" ]
위 코드를 launch.json 파일에 추가해준 최종 코드는 다음과 같다.
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Aktuelle Datei",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": ["<", "input.txt", ">", "output.txt" ]
}
]
}
아 참고로 input.txt, output.txt 위치는 제일 바깥쪽(.vscode 와 동등한 준위)이다. 왼쪽 사진과 같은 위치에 넣으면 된다.
꼬리 문제 2
- 위와 같이 설정 후 디버그 모드로 실행하니 아래와 같은 오류(ParserError + RedirectionNotSupported)가 발생했다.
The '<' operator is reserved for future use. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : RedirectionNotSupported
- 구글링 해보니 vscode는 기본으로 powershell로 디버그 모드를 실행하여 발생하는 문제였다. json 파일에 추가한 명령어는 cmd 명령어이기 때문이다. 즉, 디버그 모드를 cmd로 실행해야 문제가 해결된다. 그 설정을 어떻게 바꾸지.. 다시 고민의 시작...
3. vscode settings + settings.json 설정 변경 -> cmd가 시스템에서 인식되지 않는 문제
vscode settings 설정 변경
구글링 해보니 디버그 모드를 실행했을 때 powershell이 아닌 cmd로 연결되게 하려면 첫 번째로 vscode settings 설정을 변경해야했다.
설정으로 들어가 shell을 검색한 후, 터미널의 Default Profile: Windows를 Command Prompt (=cmd)로 변경한다.
settings.json 설정 변경
두 번째로 setting.json 설정을 변경한다. setting.json은 launch.json을 생성할 때 같이 만들어지는 .vscode 폴더 하위에 있는 파일이다. setting.json 파일에 아래와 같은 핵심 코드를 추가한다. 아래 코드는 나의 cmd 경로를 넣어야 하는데, cmd 경로는 Default Profile: Windows를 설정할 때 버튼에 마우스를 올리면 알 수 있다.
"${env:windir}\\System32\\cmd.exe"
꼬리 문제 3
- 위와 같이 설정을 변경한 후, 디버그 모드로 실행했더니 아래와 같은 오류가 발생했다.
"'cmd' is not recognized as an internal or external command"
- gpt에 물어보니, 'cmd' 콘솔 명령어를 실행하려고 시도했으나 'cmd'가 시스템에서 인식되지 않을 때 발생하는 문제라고 했다. cmd를 시스템에서 어떻게 인식되도록 해주지... 다시 고민의 시작...
3. 제어판 - 시스템 - 고급 시스템 설정 - 환경변수 설정 -> 모든 문제 해결!
gpt가 말하는 가장 기본적인 cmd 인식 방법은 시스템 환경 변수 설정이라고 했다. 제어판 - 시스템 - 고급 시스템 설정 - 환경변수 설정 - Path + 편집 클릭 - 새로 만들기 클릭한 후 아래 사진처럼 추가한다. 이 때 'C:\Windows\System32' 는 나의 cmd 기본 경로이다.
위처럼 설정한 후 디버그 모드로 실행했더니 input.txt에 입력한 데이터를 파이썬 코드에 입력 받아 실행하여 output.txt로 결과물을 자동으로 출력하는 것을 확인할 수 있었다. 231016 1번째

참고 자료 출처
vscode input.txt, output.txt로 리다이렉션 안될때
평소에 알고리즘 문제 풀때 입력을 복사 받아서 input.txt에 넣고 문제를 푸는데 갑자기 input.txt, output.txt로 리다이렉션 되던게 터미널로 나오는 문제를 만났습니다.vscode의 설정이나 launch.json 부분
velog.io
[파이썬] vscode 에서 input.txt output.txt 로 입력값 결과값 넣기
이번에 자취를 시작하면서 노트북을 하나 사자라는 마음을 먹고 노트북을 하나 샀다 이전 PC의 환경처럼 세팅해주고자.. 다시 input과 output 도 자동으로 txt로 받아 실행해주는 세팅을 해주려 하는
hbyun.tistory.com
https://www.acmicpc.net/board/view/52485
글 읽기 - vs code에서 파일로 input 받는법 아시는 분 계신가요?
댓글을 작성하려면 로그인해야 합니다.
www.acmicpc.net
https://seong6496.tistory.com/408
[Vscode] 파이썬(Python) input함수(키보드 입력) 활성화
vscode에서 파이썬 input 실행하는 방법입니다. 이걸 굳이 왜 쓰냐고 물으신다면 그냥 하면 안되기 때문입니다. vscode의 디버그 콘솔은 표준 입력을 지원하지 않아서 input() 함수가 포함된 파이썬 코
seong6496.tistory.com
https://gwpaeng.tistory.com/19
vscode에서 txt파일로 입출력 받기
하려는 것 input.txt에 입력값을 넣고 코드를 돌리면 output.txt에 결과값이 출력이 되는 것 launch.json 들어가는 법: 상단 debug에서 open configurations 들어가면 된다. 1. launch.json 바꾸기 + 그냥 terminal
gwpaeng.tistory.com