일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 보안
- 소프트웨어공학
- 컴퓨터비전
- 네트워크보안
- 코딩
- 사이버보안
- 데이터과학
- 네트워크
- 컴퓨터과학
- 컴퓨터공학
- 데이터베이스
- 자바스크립트
- 빅데이터
- 알고리즘
- 인공지능
- 딥러닝
- 2
- Yes
- 프로그래밍
- I'm Sorry
- 프로그래밍언어
- 데이터분석
- 소프트웨어
- 데이터구조
- 머신러닝
- 자료구조
- 클라우드컴퓨팅
- 버전관리
- 웹개발
- 파이썬
- Today
- Total
스택큐힙리스트
파이썬 subprocess/Popen 변경된 환경과 함께 사용하기 본문
외부 명령어를 약간 수정된 환경으로 실행하는 것이 매우 일반적인 경우라고 믿습니다. 이렇게 하는 경향이 있습니다.
import subprocess, os
my_env = os.environ
my_env[PATH] = /usr/sbin:/sbin: + my_env[PATH]
subprocess.Popen(my_command, env=my_env)
내 본능이 더 나은 방법이 있다고 느껴져. 괜찮아 보여?
답변 1
나는 현재 프로세스의 os.environ을 수정하려는 것이 아니라면 os.environ.copy()이(가) 더 좋다고 생각합니다.
import subprocess, os
my_env = os.environ.copy()
my_env[PATH] = /usr/sbin:/sbin: + my_env[PATH]
subprocess.Popen(my_command, env=my_env)
답변 2
파이썬 subprocess/Popen을 사용하여 수정된 환경에서 실행시키기파이썬에서 subprocess/Popen은 외부 명령어를 실행시키는 강력한 기능을 제공합니다. subprocess.Popen 클래스를 사용하면 Python 코드 내에서 다른 프로그램이나 명령어를 실행시킬 수 있습니다. 이 기능은 자동화나 서버 계산, 시스템 관리 등에 매우 유용합니다.
하지만 때로는 외부 명령어를 실행시키는 환경을 조정하거나, 시스템 변수를 추가하거나, 다른 변수를 수정해야하는 경우가 있습니다. 그러한 경우에는 subprocess.Popen 인스턴스를 생성할 때 env 매개변수를 지정해야합니다.
이 env 매개변수는 환경 변수에 대한 사전 형식의 값을 가지고 있습니다. 이 변수를 설정하면 새로운 환경 변수를 추가하거나 기존 환경 변수를 수정할 수 있습니다. 이를 통해 새로운 응용 프로그램을 실행시키는 데 필요한 환경을 조정할 수 있습니다.
예를들어, 파이썬 스크립트에서 외부 프로그램을 실행하고 결과를 가져와야하는 경우가 있다면, subprocess.Popen 클래스를 사용하여 이를 수행 할 수 있습니다. 이때, 실행 시킬 외부 프로그램의 path(경로)를 정의해주고, 필요한 입력 인자를 지정할 수 있습니다.
또한 파이썬 스크립트를 실행하는 환경에서 다른 시스템 변수가 필요한 경우에도 subprocess.Popen 클래스를 사용하여 이를 설정해줄 수 있습니다. env 매개변수에 새로운 값을 전달하여 기존 환경 변수를 수정하거나, 환경 변수를 새로 추가하여 원하는 작업을 수행할 수 있습니다. 보안을 강화하는 경우, env 매개변수를 사용해서 PATH를 수정하거나 LD_LIBRARY_PATH 변수를 설정할 수 있습니다.
따라서, subprocess/Popen 클래스와 함께 env 매개변수를 사용하는 것은 파이썬에서 외부 명령어를 실행시키는 것에 있어서 매우 가치있는 기능입니다. 이를 이용해 자동화나 대규모 작업, 보안 강화 등 다양한 작업을 수행할 수 있습니다.