如果第一列的值匹配,我试图删除第二列的值,即第一列中的任何值是否为"布朗"在里面。好吧,我的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")
有人可以告诉我为什么我的代码没有按预期工作。感谢
答案 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]=""
。