Как отсортировать числа из текстового файла после разделения

Может ли кто-нибудь помочь мне с сортировкой чисел из текстового файла после его разделения. У меня есть следующий текстовый файл, в котором мне нужно отсортировать числа от низкого до высокого. Независимо от последовательности или числовых значений, мне нужно отсортировать их от низкого к высокому.

Пока у меня есть следующий код, но он все еще не сортирует числа. Любая помощь будет действительно здорово. Спасибо.

Текстовый файл (input.txt):

мин:2,1,4,3,6,5

макс:1,2,3,4,5,6

в среднем: 1,2,3,4,5,6

Мой код до сих пор:

inputFile = open("input.txt", 'r')
lineList = inputFile.readlines()
print (lineList)
for line in lineList:
    numbers = [int(item) for item in line.split(':')[1].split(',')]
    numbers.sort()
    with open('inputcopy.txt', 'a') as f:
        for line in lineList:
            numbers.sort()
            f.write(line)     

person Community    schedule 04.02.2020    source источник
comment
Откуда вы знаете, что они не сортируются? код, который вы здесь показываете, просто перезаписывает файл в новый файл, а не отсортированные числа   -  person Sayse    schedule 04.02.2020
comment
Вы думали об использовании f.write(numbers) вместо f.write(line)?   -  person Thomas Weller    schedule 04.02.2020
comment
Я проверил новый текстовый файл, и он такой же   -  person    schedule 04.02.2020
comment
Спасибо, Томас... Я получаю сообщение об ошибке, когда использую f.write(numbers) - аргумент должен быть str, а не list   -  person    schedule 04.02.2020


Ответы (2)


Попробуй это :

inputFile = open("input.txt", 'r')
lineList = inputFile.readlines()
print (lineList)

fileHandle = open('inputcopy.txt', 'a')
for line in lineList:
    numbers = [int(item) for item in line.split(':')[1].split(',')]
    numbers.sort()
    fileHandle.write("%s\n" % numbers)  
fileHandle.close()
person Prashant Kumar    schedule 04.02.2020

Чтобы немного почистить

for line in lineList:
    # Split your line into your label and number list
    label, numbers = line.strip().split(':')
    # Convert the numbers into integers and sort them
    numbers = [int(item) for item in numbers.split(',')]
    numbers.sort()
    # Convert the numbers back into a comma-delimited string
    numbers = ','.join(map(str, numbers))
    with open('inputcopy.txt', 'a') as f:
        # Write your data back out
        f.write('%s:%s\n'.format(label, numbers))
person Christian Witts    schedule 04.02.2020