python - 입력 - 파이썬3 print




파이썬 종료시 오류 발생을 막으십시오. (6)

UNIX 시스템 (Windows는 이미 위에 설명 된 바 ...)에서 인터프리터 인수를 변경하여 -i 플래그를 포함시킬 수 있습니다.

#! / usr / bin / python -i

man 페이지에서 :

-나는

스크립트가 첫 번째 인수로 전달되거나 -c 옵션이 사용되면 스크립트 또는 명령을 실행 한 후 대화식 모드로 들어갑니다. $ PYTHONSTARTUP 파일은 읽지 않습니다. 이것은 스크립트가 예외를 발생시킬 때 전역 변수 또는 스택 추적을 검사하는 데 유용 할 수 있습니다.

파이썬에서 스크립트를 실행할 때 트레이스 백을 뱉어 낸 후 콘솔 창이 닫히는 것을 막을 수있는 방법이 있습니까?


Windows OS에서이 작업을 수행하는 경우 바로 가기 대상 앞에 다음을 추가 할 수 있습니다.

C:\WINDOWS\system32\cmd.exe /K <command>

이렇게하면 명령이 종료 될 때 창이 닫히지 않습니다.


당신이 이것을 할 수있는 윈도우를 사용한다면

    import os

    #code here 

    os.system('pause')

주 코드를 가져 오거나 실행하는 두 번째 스크립트가있을 수 있습니다. 이 스크립트는 모든 예외를 catch하고 추적을 인쇄합니다 (끝내기 전에 사용자 입력을 기다립니다)

귀하의 코드가 if __name__ == "__main__": main() 관용구를 사용하여 구조화되었다고 가정하십시오.

def myfunction():
    pass

class Myclass():
    pass

def main():
    c = Myclass()
    myfunction(c)

if __name__ == "__main__":
    main()

.. 그리고 파일 "myscriptname.py"(분명히 변경할 수 있습니다)라는, 다음 작동합니다

from myscriptname import main as myscript_main

try:
    myscript_main()
except Exception, errormsg:
    print "Script errored!"
    print "Error message: %s" % errormsg
    print "Traceback:"
    import traceback
    traceback.print_exc()
    print "Press return to exit.."
    raw_input()

( raw_input()Python 3 에서 input() 으로 대체되었습니다)

main() 함수가 없다면 try: 블록에 import 문을 넣으십시오.

try:
    import myscriptname
except [...]

추가 래퍼 스크립트가 필요없는 더 나은 솔루션은 IDLE 또는 명령 줄에서 스크립트를 실행하는 것입니다.

Windows에서는 시작> 실행으로 이동하고 cmd 를 입력 cmd 후 Enter를 누릅니다. 그런 다음 ..

cd "\Path\To Your\ Script\"
\Python\bin\python.exe myscriptname.py

(파이썬을 C:\Python\ 설치했다면)

Linux / Mac OS X에서는 좀 더 편하다. cd /home/your/script/ then python myscriptname.py

가장 쉬운 방법은 IDLE을 사용하고, IDLE을 시작하고, 스크립트를 열고 실행 버튼 ( F5 또는 Ctrl+F5 )을 클릭하는 것입니다. 스크립트가 종료되면 창은 자동으로 닫히지 않으므로 오류를 볼 수 있습니다.

또한 Chris Thornhill이 제안한 것처럼 Windows에서 스크립트의 바로 가기를 만들 수 있으며 속성에서 대상에 접두어를 붙입니다.

C:\WINDOWS\system32\cmd.exe /K [existing command]

http://www.computerhope.com/cmd.htm :

/K command - Executes the specified command and continues running.

처리되지 않은 예외가 발생할 때 응용 프로그램을 활성 상태로 유지하는 최상위 예외 처리기를 등록 할 수 있습니다.

def show_exception_and_exit(exc_type, exc_value, tb):
    import traceback
    traceback.print_exception(exc_type, exc_value, tb)
    raw_input("Press key to exit.")
    sys.exit(-1)

 import sys
 sys.excepthook = show_exception_and_exit

이는 C 코드에서 호출 된 이벤트 핸들러 내에서 예외가 발생하는 경우 (오류를 전파하지 않는 경우)에 특히 유용합니다.


try:
    #do some stuff
    1/0 #stuff that generated the exception
except Exception as ex:
    print ex
    raw_input()




debugging