2017-08-30 1 views
-3

J'ai du mal à lire un fichier. J'ai un petit fichier texte, comme un en dessous. Mon programme est supposé lire la première chaîne et stocker le reste des entiers et les trier dans l'ordre croissant. Je dois écrire mon programme en python, mais je n'ai pas réussi à le comprendre. Comment séparer ma chaîne et les entiers. Puis à la fin, j'ai sorti le résultat avec le nom et trié en entiers.comment lire une chaîne et un entier séparément à partir d'un fichier en python

/usr/bin/env/python

import sys 
import os 


def main(): 
    h = [] 

    infile = open(sys.argv[1], "rb") 

    str = infile.readline() 

    for line in infile: 

    for nbr in line.split(): 

     h.append(nbr) 


infile.close() 

main() 
+2

Postez votre tentative de code aussi. –

+0

Pouvez-vous montrer ce que vous avez essayé? Pouvez-vous fournir un [mcve]? Quelle est votre sortie attendue? Quelle est votre sortie réelle? Pouvez-vous nous montrer plutôt que de nous le dire? Cette question est actuellement large. –

+0

Est-ce le fichier entier ou juste une partie de celui-ci? – Ajax1234

Répondre

0

Vous pouvez utiliser regex et heapq:

import re 
import heapq 

f = [i.strip('\n') for i in open('filename.txt')] 
new_f = [re.findall("(?<=\d{1,}\.\s)[a-zA-Z0-9]+", i) for i in f] 
def heapqueue_sort(numbers): 
    l = [] 
    heapq.heapify(l) 
    for i in numbers: 
     heapq.heappush(l, i) 
    return [heapq.heappop(l) for i in range(len(l))] 
final_data = [new_f[0]].extend(heapqueue_sort(map(int, new_f[1:]))] 
print(final_data) 
+0

où envoyez-vous les valeurs en nombre? Pouvez-vous expliquer s'il vous plaît –

+0

@ Gloria_2015 Je ne suis pas sûr de ce que vous voulez dire. Parlez-vous de l'appel de la fonction? – Ajax1234

+0

oui, pouvez-vous expliquer comment map de int et new_f fonctionne dans cette méthode –