Python: открыть и отобразить текстовый файл в определенной строке - PullRequest
2 голосов
/ 16 ноября 2010

Я не часто использую Python, но иногда я разрабатываю простые инструменты, чтобы облегчить мне жизнь. Мое наиболее часто используемое средство проверки журналов / сырой отладчик для SAS. Он читает строку журнала SAS построчно, проверяя наличие ошибок в моем списке, и выводит все, что он находит, в стандартный вывод (я запускаю Python 2.6 в среде RedHat Linux) - вместе с ошибкой он печатает номер строки этой ошибки (не то, что это супер полезно).

Что я действительно хотел бы сделать, так это по желанию передать сценарию номер строки, чтобы он сам открыл журнал SAS в GVIM и отобразил его прокрутку до указанного мной номера строки. Мне не повезло найти способ сделать это - я довольно тщательно посмотрел на Google, но безрезультатно. Любые идеи очень приветствуются. Спасибо! Джереми

Ответы [ 3 ]

3 голосов
/ 16 ноября 2010

Получив номер строки, вы можете запустить gvim filename -c 12 и она перейдет к строке 12 (это потому, что -c <command> - это «Выполнить после загрузки первого файла», поэтому -c 12 - этоя просто говорю запустить :12 после загрузки файла).

Так что я не уверен, нужен ли вам вообще Python в этом случае;все, что вам нужно, это просто отправить номер строки напрямую в gvim.

2 голосов
/ 16 ноября 2010

Если вы хотите строку 10

>>> f = open('thefile.log')
>>> lines = f.readlines()
>>> lines[10]

Или все сразу

>>> open('thefile.log').readlines()[10]

Открыть в gvim

>>> import subprocess
>>> subprocess.call(['gvim', '-c', '10', 'thefile.log'])
1 голос
/ 16 ноября 2010

В зависимости от того, как часто вы просматриваете эти журналы и насколько они шумные, может быть, стоит собрать время errorformat, чтобы вы могли использовать список быстрых исправлений Vim для быстрого перехода между ошибками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...