Я пытаюсь реплицировать команду IDLE alt
+ m
(открыть модуль по пути sys
) в Notepad ++. Мне нравится Notepad ++ для редактирования (а не IDLE), но это одна из особенностей, которую я не могу найти.Открыть файл Python в Notepad ++ из программы
Когда нажата кнопка 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'
). В качестве альтернативы я мог бы просто:
try:
fullPath = r'D:\\my_stuff\\Google Drive\\Modules\\' + f
# method of opening file in Notepad++
except (IOError, FileNotFoundError):
fullPath = r'C:\\Python27\\Lib\\' + f
# open in Notepad++
Это не относится к подпапкам и кажется довольно неуклюжим. Благодаря!
Спасибо! Мне нужен второй, потому что я открываю файлы Python ('.py') из другой программы Python. Кроме того, я добавил ссылку на модуль подпроцесса. –
Кроме того, вы знаете, как найти полный путь к файлу только с именем файла? –
os.path.abspath (путь) http://docs.python.org/2/library/os.path.html, но, пожалуйста, помните, что истинные пути _solely_ не могли быть разрешены, нет возможности выполнения Python выведите полный путь к файлу foo.txt, если он находится в нескольких папках. –