Come ti ho gia detto: sono presenti caratteri imprevisti nel file di input.
Puoi anche avere un milione di numeri ma se tutti seguono lo standard:

numero,numero,numero;
numero,nuemro,numero,nuemro;
[...]

non avrai problemi.
Ho speso più di 1 ora per ottimizzarti il programma. In questo modo dovrebbe eliminare tutti i caratteri non validi, gli spazi e gli "a capo" di troppo. Ho fatto diverse prove e per farlo crashare ti assicuro che ti ci devi davvero impegnare. Per farti un esempio, riesce a "ripulire" processare e ordinare anche una schifezza di file di input come questo, ignorando gli standard "non validi", evitando che il programma si blocchi in seguito ad errori:
codice:
###file di input:

dasjol xm7,12,1,56,6;     
9,37,4,5, 1; /()hjJ
   das
ds
      xcmal()= KMl 
      
      
!"$%#sdmjsklm99,143,30,2,16,5412,12;  sdajkl
                  /&TYgb)
codice:
### file di output

1,6,7,12,56;
1,4,5,9,37;
2,12,16,30,99,143,5412;
Più di cosi non posso fare.
Ecco il codice:

codice:
#!usr/bin/python
# -*- coding: utf-8 -*-

import os

non_validi  = ""
non_validi += "abcdefghijklmnopqrstuvwxyz"
non_validi += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
non_validi += """àèìòù@#]\|!"£$%&/()=?^'*°§ç.:-_ """

fi = open('fi.txt','r')
fo = open('fo.txt','w')
lista = ''

# elimina caratteri non validi da fi
for line in fi.readlines():
    for i in line:
        if (i not in non_validi):
            lista+= i

temp = open('temp','w+')
temp.write(lista)
temp.close()
temp = open('temp','r')

a = []
for line in temp.readlines():
    if (line != '\n'): #ignora gli 'a capo' di troppo
        x = line[:-2].split(',')
        try: a=[int(y) for y in x]
        except: print "ERR: %s" %y; os.remove('temp'); os._exit(0)
        a.sort()
        l = 0
        for i in a: l += 1
        for i in a:
            if l != 1:
                fo.write(str(i)+',')
            else:
                fo.write(str(i)+';')
            l -= 1
        fo.write('\n')
os.remove('temp')
fi.close()
fo.close()
Fammi sapere come va