使用python过滤文件

时间:2012-07-17 18:36:35

标签: python

我从终端中的netstat -a命令生成数据,现在从那里结果是我写入文件的所有传入和传出的ip地址,如何通过列只检索ip地址?

另外,如何按列参数检索数据?例如,从第10列开始到第27列结束。我尝试了过滤功能,但它没有用。谢谢!

3 个答案:

答案 0 :(得分:1)

这个怎么样:

with open('data.txt') as inf:
    for lc, line in enumerate(inf, 1):  # lc - current line count
        if lc > 3:  # if you need to skip some header lines ?? (unknown data)
            cols = line.split()
            for i in xrange(10, 28):  # print column 10 - 27
                print cols[i], '  ',
            print

如果你能发布一些带有问题的数据会很有帮助,所以代替我正在使用 10 的示例列 - 的 27

答案 1 :(得分:0)

filename = ...
with open(filename, 'rb') as f:
    for row in f.readlines()[1:]:
        columns = row.split()
        if len(columns) > 2:
            print row.split()[1]

答案 2 :(得分:0)

这与Levon的答案基本相同,但稍微更紧凑和Pythonic,并且数字调整为我怀疑OP正在尝试做的猜测。

with open('data.txt') as inf:
  for lc, line in enumerate(inf):  # lc - current line count
    if lc >= 2: # netstat usually has 2 lines of header info
      print ' '.join(line.split()[3:5]) # cols 3-4 are the addresses