스택큐힙리스트

다른 Python 스크립트로부터 인수를 전달하여 Python 스크립트를 실행합니다. [중복] 본문

카테고리 없음

다른 Python 스크립트로부터 인수를 전달하여 Python 스크립트를 실행합니다. [중복]

스택큐힙리스트 2023. 4. 2. 14:01
반응형

이 질문에는 이미 답변이 있습니다:

How to call a script from another script?

1. 안녕하세요 - Hello

2. 사랑해요 - I love you

3. 감사합니다 - Thank you

4. 미안해요 - I'm sorry

5. 좋아해요 - I like it

6. 안돼요 - No way

7. 이게 뭐예요? - What is this?

8. 어디에 가나요? - Where are we going?

9. 나쁘지 않아요. - Not bad.

10. 나는 먹고 싶어요. - I want to eat.

11. 조용히 해요 - Be quiet.

12. 집에 가고 싶어요. - I want to go home.

13. 내일 뵙겠습니다. - See you tomorrow.

14. 뭐라고? - What did you say?

15. 이것 좀 주세요. - Please give me this.

16. 맛있어요! - It's delicious!

8년 전에 닫힘.

저는 다른 파이썬 스크립트에서 파이썬 스크립트를 실행하길 원합니다. 명령줄을 사용하는 것과 같이 변수를 전달하고 싶습니다.

예를 들어, 나는 첫 번째 스크립트를 실행하여 값 목록(0, 1, 2, 3)을 반복하고 두 번째 스크립트에 전달하고 ($ #! ** ^^ $ &) 그런 다음 ($ #! @! ## $ &) 등등.

나는 비슷한 질문인 Stack Overflow question 1186789를 찾았는데, ars의 답변은 함수를 호출하지만 나는 함수가 아닌 전체 스크립트를 실행하고자 한다. balpha의 답변은 스크립트를 호출하지만 인수가 없다. 나는 이것을 아래와 같이 테스트해 보았다.

execfile(script2.py 1)

하지만 이는 변수를 제대로 수용하지 않습니다. script2.py에서 sys.argv 를 출력하면 처음 스크립트 호출인 ['C:\script1.py']입니다.

저는 실제로 소유권이 없기 때문에 원래 스크립트 (즉, 제 예시에서의 script2.py)를 변경하고 싶지 않습니다.

나는 이것을 할 방법이 있을 것으로 생각하지만, 어떻게 하는지 혼란스럽다.

답변 1

os.system를 사용해 보세요:

os.system(script2.py 1)

execfile은 현재 실행 컨텍스트에서 파이썬 문을 연속적으로 실행하도록 설계되어 있기 때문에 sys.argv와는 다릅니다. 그래서 sys.argv가 당신에게 변경되지 않았습니다.

답변 2

입력 인수를 전달하여 다른 Python 스크립트에서 Python 스크립트를 실행하는 방법에 대해 알아보겠습니다. 이렇게 하면 더 복잡한 프로그램을 구성하기 위해 여러 스크립트를 연결할 수 있습니다.

Python에서 하나의 스크립트에서 다른 스크립트를 실행하는 것은 subprocess 모듈을 사용하여 가능합니다. subprocess 모듈은 외부 프로그램을 실행하고 표준 입력, 표준 출력 및 표준 에러를 처리하는 방법을 제공합니다.

이 모듈을 사용하여 Python 스크립트를 실행하려면 subprocess.call() 함수를 사용하고 인수로 실행할 스크립트의 경로와 실행할 스크립트에 전달할 인수를 전달해야 합니다. 예를 들어, 다음과 같이 실행하는 Python 스크립트가 있다고 가정해 봅시다.

```

# myscript.py

import sys

if __name__ == '__main__':

print(Hello, {}.format(sys.argv[1]))

```

이 스크립트를 다른 Python 스크립트에서 실행하려면 subprocess 모듈을 사용하여 다음과 같이 호출합니다.

```

# main.py

import subprocess

if __name__ == '__main__':

subprocess.call(['python', 'myscript.py', 'world'])

```

이렇게 하면 'Hello, world'가 출력됩니다.

이 방법은 하나 이상의 인수를 전달하여 Python 스크립트를 실행하는 데 유용합니다. 또한 subprocess 모듈에는 다른 함수와 인터페이스도 제공되므로 자세한 내용은 Python 공식 문서를 참조하십시오.

Python 스크립트를 호출하는 데 사용되는 subprocess 모듈을 사용하여 Python 스크립트를 실행할 때 인수를 전달하는 방법을 알아보았습니다. 이 방법을 사용하면 Python으로 구성된 더 큰 프로그램을 구축할 수 있습니다.

반응형
Comments