2010-11-16 5 views
2

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

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

ответ

3

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

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

+1

также может быть записано как 'ВИМ [имя файла] + 12' –

+0

@too много php: спасибо, не знал, что –

+0

@too много php: +1, vi делает все :) – g19fanatic

1

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

+0

Абсолютно. Очень хороший совет. –

2

Если вы хотите линия 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']) 
Смежные вопросы