2017-12-06 1 views
1

Excel을 열려고하는데 시각적으로 표시됩니다.open 파일 python을 열면 표시됩니다.

내가 사용 :이 분명하지만이 오류 메시지가 계속 경우

import subprocess 
subprocess.check_call(['open', '-a', 'C:\\1\\2\\22.xlsx']) 

https://ibb.co/eOhY4b

죄송합니다. 제가 파일을 찾을 수있는 한은 거기에 있습니다.

FileNotFoundError: [WinError 2] The system cannot find the file specified 
+0

시도'수입 os'과'os.path.join을 사용

>>> os.path.join('C:', '1', '2', '22.xlsx') 'C:1\\2\\22.xlsx' # wrong 

깨끗한 방법은 그것을 할 수 있습니다. xlsx ')'를 수동으로 서식 지정하는 대신 경로 인수로 사용하십시오. – jo9k

+0

@ jo9k 이상한, 나는 창문 10에 있고 이것은 나를 위해 아무것도하지 않는다. 나는 주변에서 일을 발견했다. –

답변

3

는 그냥 때문에 open 알려진 명령 이름 (이 아무것도 더, 윈도우 레지스트리의 작업입니다)하지 작동하지 않았다 작동합니다. subprocess 오류 메시지 :

FileNotFoundError: [WinError 2] The system cannot find the file specified 

하나 의미를 가지고 : 실행 파일을 찾을 수 없습니다. 매개 변수를 검사하여 매개 변수가 올바른 파일 경로인지 확인하지 못하므로 방향을 살펴 보지 마십시오 (예, 메시지가 일반적이라는 사실을 염두에두고 정확하게 어떤 파일이 될 수 없다는 것을 말하는 것은 아닙니다. 알려진 윈도우 문제)

일하는 것이 그 것을 발견

import subprocess 
os.startfile(r'C:\1\2\22.xlsx') 

os.startfile 시도는 Windows 탐색기에서 파일을 클릭 할 때와 같은 일을 수행 할 수 있습니다.

이 솔루션은 win32com에 의존하지 않는 장점이 있습니다.

덧글/기타 사항 : os.path.join('C:', '1', '2', '22.xlsx') 드라이브 콜론 다음에 백 슬래시가 추가되지 않기 때문에 작동하지 않습니다. (좋은 이유는 windows와 같은 이유가 있습니다.) Python os.path.join on Windows). '1', '2', '22 : ('C'를

>>> os.path.join('C:', os.sep,'1' , '2', '22.xlsx') 
'C:\\1\\2\\22.xlsx' 
+0

잠깐,'os.path.join'과'os.path.normpath (os.path.join()) '에 의해 생성 된 문자열 사이의 차이점은 무엇입니까? 아무 것도 보지 않고 ipython에 둘다 넣고'=='연산자를 사용하여 비교하면 True 값이 반환됩니다. – jo9k

+1

미안하지만, 나는 그것이 효과가 있다고 생각했고 내 기억은 환각을 주었다. 작동하지 않습니다. 그러나 나는 해결책을 제공했다. –

3

import os 
os.path.join('C:', '1', '2', '22.xlsx') 

이 작동하지 않았는지 확실하지. 나는 그것이 효과가 있다고 생각하지만 눈에 띄는 탁월함은 없다.

어쨌든,이

xl=win32com.client.Dispatch("Excel.Application") 
xl.Visible = True 

xl.Workbooks.Open("C:\\1\\2\\22.xlsx") 
관련 문제