删除包含特定值的行并删除奇数列

时间:2013-02-18 04:09:16

标签: python rows

尝试在python中使用两个文本文件。目标是首先删除包含3或4的所有行。然后,完全删除前6列。我已经想出了如何删除6个coloumns:

f = open("filename.txt", "r")
g = open("filename1.txt", "w")

for line in f:
    if line.strip():
        g.write("\t".join(line.split()[6:]) + "\n")
f.close()
g.close()

但是,我无法弄清楚如何基于重复的字符/出现来删除行(在这种情况下,行中出现的数字3或4应该完全删除该行)。最后,删除所有奇数列,但不完全删除它们。基本上,删除奇数列并将它们添加到文本文件的末尾(要写入的新文本文件,即 - 所有内容都写入下一个文本文件)。

1 个答案:

答案 0 :(得分:1)

lines = [line.strip() for line in open('file.txt')]
nlines=[]
for line in lines:
    if 3 not in map(int,line.split()) and 4 not in map(int,line.split()): nlines.append(line)
for x in nlines:
    y=x.split()
    y=y[1::2]
    print ' '.join(y)

file.txt的

3 4 5 6 7 12 34 56
2 5 6 7 8 11 10 7
4 5 6 7 8 44 55 12
33 66 88 99 79 1 2 5

删除包含3或4的行并删除奇数列

输出

5 7 11 7
66 99 1 5