를 실행한다면, 시도 및 확인/제외하고는, 그 확인해야합니다. 이 기능은 약간 이상하게 작동합니다. 여기에 도움을 주시면 감사하겠습니다.파이썬/win32com/응용 프로그램이 내가 조금 기능이</p> <p>윈도우 7에 파이썬 3.6.2를 사용하고
Excel이 실행 중인지 확인해야합니다. 그렇다면 텍스트를 인쇄하고 응용 프로그램을 종료하십시오. 없으면 모든 것이 정상입니다. 계속하십시오. 엑셀 가 시도 블록은 및 제외 블록이뿐만 아니라 실행되는 인쇄 아니라 sys.exit()를 포함하여 실행 실행 때
내 문제는 지금이다!? Excel이 이 아니고이 실행 중이면 모든 것이 정상이며 try 블록이 중단되고 except 블록 만 실행됩니다.
Excel이 실행 중일 때 둘 다 인쇄 명령문을 실행하는 이유는 무엇입니까?
도와주세요!
def check_if_Excel_runs():
import win32com.client
import sys
try:
win32com.client.GetActiveObject("Excel.Application")
# If there is NO error at this stage, Excel is already running
print('Excel is running, please close first')
sys.exit()
except:
print('Excel is NOT running, this is good!')
return
check_if_Excel_runs()
내 출력 (Excel이 실행) : 사전에
Excel is running, please close first
Excel is NOT running, this is good!
감사
여기 내 코드입니다!
UPDATE :
확인, 나는 일반적으로 내가 처리 할 예외를 specifiying없이 "제외"하지 말아야 할 것을 이해했다. 그러나 예외를 결정하는 방법을 결정하려면 어떻게해야할까요? 오류 메시지를 보면 나에게 명확하지 않습니다.
com_error Traceback (most recent call last)
<ipython-input-39-70980aa1c5df> in <module>()
11 return
12
---> 13 check_if_Excel_runs()
<ipython-input-39-70980aa1c5df> in check_if_Excel_runs()
3 import sys
4 try:
----> 5 win32com.client.GetActiveObject("Excel.Application")
6 # If there is NO error at this stage, Excel is already running
7 print('Excel is running, please close first')
c:\users\chnn\appdata\local\programs\python\python36-32\lib\site-packages\win32com\client\__init__.py in GetActiveObject(Class, clsctx)
77 """
78 resultCLSID = pywintypes.IID(Class)
---> 79 dispatch = pythoncom.GetActiveObject(resultCLSID)
80 dispatch = dispatch.QueryInterface(pythoncom.IID_IDispatch)
81 return __WrapDispatch(dispatch, Class, resultCLSID = resultCLSID, clsctx = clsctx)
com_error: (-2147221021, 'Operation unavailable', None, None)
여러분의 도움에 다시 한번 감사드립니다.
마지막 줄에는'com_error : ...'가 표시되므로 예외는'com_error'입니다. 여전히 패키지 이름이 필요합니다. 'python com_error'를 google에 입력하면'pythoncom.com_error'라는 결과를 얻게됩니다. – pschill