python很新。我的问题是我有一个txt文件('A.txt'),其中有一堆列,另一个txt文件('B.txt)有不同的数据。但是,B中的一些数据也显示在A中。例如:
tot = 0
with open('B.txt', 'r') as f1:
for a in f1:
WR = a.strip().split()
with open('A.txt', 'r+') as f2:
for b in f2:
l = b.strip().split()
if WR not in l:
print l
tot += 1
#I've done it the following way and also doesn't give the
#output I need
#if WR == l: #find duplicates
# continue
#else:
# print l
print tot
我希望A.txt中的所有内容都显示在A.txt中,以便从A.txt中删除 我之前已经意识到这一点,但我已经尝试过给人们提出类似问题的建议,但这对我不起作用。
到目前为止,我有:
A.txt:
name1 x1 y1
name4 x4 y4
name5 x5 y5
name6 x6 y6
...
name1 x1 y1
name4 x4 y4
name5 x5 y5
name6 x6 y6
...
name1 x1 y1
name4 x4 y4
name5 x5 y5
name6 x6 y6
...
name1 x1 y1
name4 x4 y4
name5 x5 y5
name6 x6 y6
...
当我运行这个时,我会回到我认为的答案(文件A有2060文件B有154个),但重复了154次。 所以我的意思是:
A.txt:
name1 x1 y1
name4 x4 y4
name5 x5 y5
name6 x6 y6
...
我只希望它看起来像:
{{1}}
就像我说过的那样,我已经看过其他类似的问题,并尝试了他们的所作所为,这给了我这个重复的答案。任何建议将不胜感激!
答案 0 :(得分:0)
我刚刚复制了您的A和B文件,所以请检查并告诉我它是否正确
tot = 0
f1 = open('B.txt', 'r')
f2 = open('A.txt', 'r')
lista = []
for line in f1:
line.strip()
lista.append(line)
listb = []
for line in f2:
line.strip()
listb.append(line)
for b in listb:
if b in lista:
continue
else:
print(b)
tot+=1
此代码打印该行,但如果您需要,也可以将其写入文件