1

我正在尝试使用 grep 通过文件os.system("grep 'regex' /path/to/file.log")。我知道正则表达式是正确的,并且从 shell 运行时该命令有效,但是一旦我尝试运行脚本,我就会收到以下错误:

sh: /path/to/file.log: Permission denied

os 模块是否没有以我的权限运行?另外,有没有更好的方法来做到这一点?我需要在超过 40,000 行的文件中找到特定的行。

谢谢!

4

1 回答 1

3

使用 Python 的内置 regex 模块可能更容易做到这一点re,而不是使用grep.

import re

with open(filename, 'r') as f:
    for line in f:
        if re.search(regex, line):
            print line,

我知道这并不能直接回答问题,但它可能是解决潜在问题的正确方法。我认为这属于“有没有更好的方法来做到这一点?” 你问题的一部分。

于 2012-11-09T19:43:47.217 回答