1

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

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 应该完全删除该行)。最后,删除所有奇数列,但不完全删除它们。本质上,删除奇数列并将它们添加到文本文件的结尾(要写入的新文本文件,即——所有内容都被写入下一个文本文件)。

4

1 回答 1

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)

文件.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
于 2013-02-18T04:40:58.950 回答