Python 如何从文件中删除重复的数字?
我需要删除多次迭代的数字。。如果我已经知道重复的数字。我应该有两个文件吗。。一个是实数,我有“data.txt”。另一个包含迭代“columns.txt”的数字。。它只是为了快速搜索重复的数字-因为文件太大,无法手动删除,所以我将重复的数字保存在一个文件中。。如何进行正确的循环以从一个文件搜索到另一个文件,以及它是否找到了该文件。。只需删除重复的内容并仅保留其中一项 我试图实现的代码如下Python 如何从文件中删除重复的数字?,python,Python,我需要删除多次迭代的数字。。如果我已经知道重复的数字。我应该有两个文件吗。。一个是实数,我有“data.txt”。另一个包含迭代“columns.txt”的数字。。它只是为了快速搜索重复的数字-因为文件太大,无法手动删除,所以我将重复的数字保存在一个文件中。。如何进行正确的循环以从一个文件搜索到另一个文件,以及它是否找到了该文件。。只需删除重复的内容并仅保留其中一项 我试图实现的代码如下 infile = "/home/user/Desktop/data.txt" outfi
infile = "/home/user/Desktop/data.txt"
outfile = "/home/user/Desktop/new.txt"
numbers="/home/user/Desktop/columns.txt"
with open(infile) as fin, open(outfile, "w+") as ft:
for line in fin:
for number in numbers:
line = line.replace(number, "")
ft.write(line)
但是仍然有一个问题。。循环删除了所有迭代的数字,我只需要保留其中一个。。不删除所有重复的
data.txt
53.74270106
60.45828786
50.08396881
119.2588545
119.2588545
119.2588545
119.2588545
119.2588545
119.2588545
119.2588545
8.391147123
3.998351513
应该是这样的
53.74270106
60.45828786
50.08396881
119.2588545
8.391147123
3.998351513
如果数字只按顺序出现,我需要删除它。如果您使用的是python 3.6+,则此解决方案将适用于您。通过这种方式,您不需要有一个已经知道重复数字的列表,python将为您完成这项工作 如果未使用python 3.6+,请将
dict.fromkeys
更改为collections.OrderedDict.fromkeys
with open('data.txt') as file:
lines = dict.fromkeys(line.strip() for line in file)
with open('out.txt', 'w') as file:
file.writelines('\n'.join(lines))
输出
53.74270106
60.45828786
50.08396881
119.2588545
8.391147123
3.998351513
我觉得布景更好
a_set = set()
with open ('data2.txt') as f:
for line in f:
a_set.add(line)
print(a_set)
请把你的回溯也贴出来。我编辑了我得到的结果。。循环删除了所有迭代的数字,我只需要保留其中一个。。不删除所有重复显示您的
infle
和number
的小样本您已经编辑了帖子。。我从我的代码中删除了文件numbers=“/home/user/Desktop/columns.txt”
中的所有119.2588545,你提到过你也有一个重复的数字列表,这并不能维持字典使用的秩序。。非常感谢你,你也可以投票决定答案
{'3.998351513', '50.08396881\n', '60.45828786\n', '119.2588545\n', '8.391147123\n', '53.74270106\n'}