Python 如何删除重复的值并写入不同的文件?

Python 如何删除重复的值并写入不同的文件?,python,Python,我正在尝试读取一个如下所示的文件: 83 124 125 83 125 126 83 126 127 83 127 128 83 128 128 154 120 120 154 120 121 154 121 122 154 122 123 154 123 124 122 92 93 122 93 94 122 94 95 122 95 96 122 96 97 并将每组值写

我正在尝试读取一个如下所示的文件:

    83 124 125
    83 125 126
    83 126 127
    83 127 128
    83 128 128
    154 120 120
    154 120 121
    154 121 122
    154 122 123
    154 123 124
    122 92 93
    122 93 94
    122 94 95
    122 95 96
    122 96 97
并将每组值写入不同的文件。第一个值(
83
/
154
/
122
)需要是文本文件的名称。其余的值应该像这样写入相应的文件:
124 128

所以文件
“83.txt”
包含
124 128
。文件
“154.txt”
包含
120 124
。文件
“122.txt
应该包含
92 97

如何迭代上述输入并从第一列中删除重复值?然后继续获取每个第一列值共享的最小值和最大值?最后将每一行写入特定文件夹中的新文本文件中

我尝试使用:

from itertools import chain
from collections import defaultdict
from operator import itemgetter
from itertools import groupby

def final(f):
    with open (f+'.txt', 'r') as fin:
        lines = fin.readlines().split().strip('\n')
        v1, v2, v3 = lines[0], lines[1], lines[2]
        for v1, g in groupby(enumerate(diffs[v1x]), lambda (i, x): i - x):
            group = map(itemgetter(1), g)
            lines.itertools.chain()
            lines = defaultdict(list)
            print (lines),

这是一个不完整的版本,我之前有什么,但我似乎不能让它像以前一样工作。无论如何,我的代码结束了很长,没有那么可读性…如果需要更多的细节来回答这个问题,我会提供给他们。我希望看到不同的采取这一点,而不是简单地张贴我的粗糙的代码,让别人调整

假设文件名是“有序的”,而其他项目是有序的,那么:

from itertools import groupby
from operator import itemgetter
from collections import deque

with open('/home/jon/testdata.txt') as fin:
    lines = (line.split() for line in fin)
    for k, g in groupby(lines, itemgetter(0)):
        fst = next(g)
        lst = next(iter(deque(g, 1)), fst)
        with open(k + '.txt', 'w') as fout:
            fout.write(fst[1] + ' ' + lst[2])

提供现有代码仍然是“必需的”…无论如何-您的文件名是否总是连续的,或者是否可以出现在任何地方?如果这是您的意思,文件名顺序并不重要。
long_string = """    83 124 125
    83 125 126
    83 126 127
    83 127 128
    83 128 128
    154 120 120
    154 120 121
    154 121 122
    154 122 123
    154 123 124
    122 92 93
    122 93 94
    122 94 95
    122 95 96
    122 96 97
"""

files = {}
for line in long_string.split("\n"):
    try:
        filenum, minvalue, maxvalue = line.strip().split(" ")
        try:
            new_min = min(files[filenum][0], minvalue)
            new_max = max(files[filenum][1], maxvalue)
            files[filenum] = (new_min, new_max)
        except KeyError:
            files[filenum] = (minvalue, maxvalue)
    except ValueError:
        print("There are no 3 values as excpected")

for filename, values in files.iteritems():
    with open(filename + ".txt", "wb") as writer:
        writer.write(values[0] + " " + values[1])