Python:打开并在特定行显示文本文件

时间:2010-11-16 02:32:25

标签: python vim

我不经常使用Python,但我有时会在其中开发简单的工具以使我的生活更轻松。我最常用的是SAS的日志检查程序/原始调试程序。它通过行检查SAS日志行检查列表中的任何错误,并将它找到的任何内容转储到标准输出(我在RedHat Linux环境中运行Python 2.6) - 连同错误,它打印出该错误的行号(不是那个超级有用)。

我真正想做的是有选择地为脚本提供一个行号,让它在GVIM中打开SAS日志本身并将其向下滚动到我指定的行号。我没有找到任何方法来做到这一点 - 我在Google上看起来非常彻底,但无济于事。任何想法将不胜感激。谢谢! 杰里米

3 个答案:

答案 0 :(得分:3)

获得行号后,您可以运行gvim filename -c 12,它将转到第12行(这是因为-c <command>是“加载第一个文件后执行&lt; command&gt;”,所以-c 12只是说加载文件后运行:12

所以我不确定在这种情况下你是否真的需要Python;只需将行号直接发送到gvim就可以了。

答案 1 :(得分: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'])

答案 2 :(得分:1)

根据您检查这些日志的频率以及它们的噪音程度,将errorformat放在一起可能值得花时间,以便您可以使用Vim的quickfix列表快速跳转错误。