개요

파이썬 + 이것이 코딩테스트다(파이썬편)으로 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번째


참고 자료 출처

https://chat.openai.com/

https://velog.io/@hylee/vscode-input.txt-output.txt%EB%A1%9C-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98-%EC%95%88%EB%90%A0%EB%95%8C

 

vscode input.txt, output.txt로 리다이렉션 안될때

평소에 알고리즘 문제 풀때 입력을 복사 받아서 input.txt에 넣고 문제를 푸는데 갑자기 input.txt, output.txt로 리다이렉션 되던게 터미널로 나오는 문제를 만났습니다.vscode의 설정이나 launch.json 부분

velog.io

https://hbyun.tistory.com/28

 

[파이썬] 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


https://stackoverflow.com/questions/56480444/cant-run-python-programs-in-vs-code-cmd-is-not-recognized-as-an

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts