如果第一列的值匹配,则删除第二列的值

时间:2015-02-09 20:25:40

标签: python

如果第一列的值匹配,我试图删除第二列的值,即第一列中的任何值是否为"布朗"在里面。好吧,我的python代码还不够好。

我的数据文件X:

Brown_256   good
Sure_278    uncertain
Brown_278   uncertain
Gorino_289  good
Tempar_290  good

预期输出:fileY:

Brown_256   
Sure_278    uncertain
Brown_278   
Gorino_289  good
Tempar_290  good

我的尝试:

infile=open("fileX.txt", "r")
outfile=open("fileY.txt", "w")
for item in infile:
    item=str(item).split("\t")
    #item=item.strip()
    #print item[1]
    if item[0].startswith("Brown_"):
        print item[1]
        item=item.replace("item[1]","") 
        outfile.write(item+"\t")

有人可以告诉我为什么我的代码没有按预期工作。感谢

2 个答案:

答案 0 :(得分:1)

我可能会这样写代码:

for line in infile:
    if line.startswith('Brown'):
        left, sep, right=line.partition('\t')
        outstr=''.join([left, sep])+'\n'
    else:
        outstr=line 
    outfile.write(outstr)

(未经测试......)

答案 1 :(得分:0)

列表没有方法replace,您不能将字符串("item[1]")用作实际值(item[1])。

item=item.replace("item[1]","")更改为item[1]=""