Coding/Python
[Python] 파이썬에서 명령 프롬포트(cmd) 명령어 실행시키기 - 현재 경로 내 파일 리스트 출력하기
junedev
2019. 11. 8. 15:17
Python os 라이브러리 사용하기
파이썬에는 os라는 라이브러리가 존재합니다.
이는 운영체제에서 관리하는 다양한 기능을 다룰 수 있도록 해주는 라이브러리입니다.
(클립보드, cmd, Window 시계 등등..)
그중 cmd 명령어를 직접 이용하여 python 코드 내에 적용시킬 수 있다는 것이 신기하여, 간단한 예제로 알아보도록 하겠습니다.
(subprocess 라이브러리를 이용하기도 하지만, 이번 포스팅에서는 os 라이브러리로 다루겠습니다)
우선 os 라이브러리를 import 합니다.
# os 라이브러리 import
import os
os 라이브러리에서 cmd 명령어를 사용할 때는 os.system()을 사용합니다.
우선 현재 폴더로 이동을 해야겠죠?
현재 폴더의 경로를 얻고 싶을때는 getcwd() 메소드를 이용합니다.
import os
# 현재 경로 저장
path = os.getcwd()
그다음엔 cd
명령어를 통하여 해당 경로로 이동해 봅시다.
파이썬의 format을 이용하여 코드를 깔끔하게 해 봅시다.
import os
os.system('cd {}'.format(os.getcwd()))
그다음엔, dir명령어를 통하여 리스트를 변수에 저장해 봅시다.
os.system('dir')로도 목록 조회가 가능하지만, 파이썬 콘솔에 바로 출력되며 한글 인코딩이 되지 않아 깨지는 현상이 발생합니다.(...)
그리고 os.system()으로는 변수에 따로 출력값을 저장할 수 없습니다. 따라서 이럴 때는
os.popen을 이용합니다.
import os
os.system('cd {}'.format(os.getcowd())))
output = os.popen('dir').read()
print(output)
os.popen()을 read()로 읽은 값을 변수에 저장하면, cmd에서 출력된 부분을 콘솔에도 출력할 수 있습니다!
출력 결과
성공적으로 해당 py(test.py)가 있는 경로의 파일 리스트가 출력되었습니다!