파이썬에서 os.popen 함수를 가지고 하고있는데 안되네요.. ㅠㅠ 도와주세요ㅠㅠ
조회수 2335회
import os
def run(command):
file = open("tmp.py", 'w')
file.write(command)
file.close()
res = os.popen("sudo python3 tmp.py -f").read()
return res
res = run("안녕하세요")
print("결과"+res+"")
이런식으로 코드를 짜서 실행했습니다.
Traceback (most recent call last):
File "tmp.py", line 1, in <module>
안녕하세요
NameError: name '안녕하세요' is not defined
터미널창에는 이렇게 뜨는데
정작 결과
라고만 뜨네요..
도와주시면 감사드리겠습니다.
파이썬에서 파이썬코드를 실행하려고 하는데 도움을 주시면 감사드리겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
tmp.py 에 "안녕하세요" 를 쓰고 있는데...tmp.py가 python 문법에 맞지도 않는데 정상적으로 동작하겠어요?
그리고 파이썬에서 파이썬 스크립트를 수행하는데 왜 외부 프로세스로 동작을 시켜야하죠?
file = open("tmp.py", 'w') file.write("print('aaaaa')") file.close() import tmp
위와 같이 해도 수행되는 겁니다. 물론 결과를 받아야 된다면 함수로 작업하고 호출해도 그만이구요.
file = open("tmp.py", 'w') file.write("def show():return 'aaaaa'") file.close() import tmp s = tmp.show() print(s)
그럼에도 질문자의 코드를 동작하게 만들고 싶다면 아래의 수정부분처럼 해주면 됩니다.
import os def run(command): file = open("tmp.py", 'w') file.write(command) file.close() res = os.popen("sudo python3 tmp.py -f").read() return res res = run("print('hello')") # 수정 print("결과"+res+"")
댓글 입력