2013-03-16 5 views
2

IDLE의 alt + m 명령 (sys 경로의 모듈 열기)을 메모장 + +에서 복제하려고합니다. 메모장 + 편집을 위해 (IDLE 대신) 메모장을 좋아하지만, 이것은 찾을 수없는 기능 중 하나입니다.프로그램에서 메모장 ++에서 Python 파일 열기

alt+m을 누르면 모듈을 요청하는 프로그램을 실행하고 싶습니다. (그렇게 간단합니다. 그렇게 할 수 있습니다.) 내 문제는 모듈을 찾은 다음 단순히 프로그램을 실행하는 것이 아니라 Notepad ++에서 열 때입니다. 또한 새로운 인스턴스가 아닌 Notepad ++에서 동일한 인스턴스 (같은 창)에서 열길 원합니다.

나는이 시도했다 : 그러나

import os 
f = r"D:\my_stuff\Google Drive\Modules\nums.py" 
os.startfile(f, 'notepad++.exe') 

을, 나는이 오류가 발생합니다 :

Traceback (most recent call last): 
    File '_filePath_', line 3, in <module> 
    os.startfile(f, 'notepad++.exe') 
OSError: [WinError 1155] No application is associated with the specified file for this operation: 'D:\\my_stuff\\Google Drive\\Modules\\nums.py' 

어떻게이 문제를 해결할 수 있습니까?

또한 'nums.py'과 같은 문자열이 있으면 전체 경로를 어떻게 찾을 수 있습니까? 이 폴더는 'D:\\my_stuff\\Google Drive\\Modules' 또는 'C:\\Python27\Lib'의 두 폴더 중 하나입니다 ('Lib' 폴더의 여러 하위 폴더에있을 수도 있음). 또는 다음과 같이 간단히 할 수 있습니다.

하위 폴더를 고려하지 않고 다소 어수선해 보입니다. 감사!

답변

1

.py 파일이 (메모장 포함)이면 os.startfile(f, 'notepad++.exe')이 적합합니다 (ftype 참조).

,하지 않는 한이 연결을 만들 싶습니다, 당신을 위해 ++ 메모장을 엽니 다 다음 코드를

import subprocess 
subprocess.call([r"c:\Program ...Notepad++.exe", r"D:\my_stuff\Google Drive\Modules\nums.py"]) 

참조 : subprocess.call()

+0

감사합니다! 다른 파이썬 프로그램에서 파이썬 ('.py') 파일을 열어 두 번째 파일이 필요했습니다. 또한, 하위 프로세스 모듈에 대한 링크를 추가했습니다. –

+0

또한 파일 이름이 주어진 파일의 전체 파일 경로를 찾는 방법을 알고 있습니까? –

+0

os.path.abspath (경로) http://docs.python.org/2/library/os.path.html 실제로 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 할 수있는 경로를 해결할 수 없다는 점을 명심하십시오. 여러 폴더에있는 foo.txt의 전체 경로를 추론하십시오. –