IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Importer fichier txt dans un tableau


Sujet :

Python

  1. #1
    Membre habitué Avatar de Bearb
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut Importer fichier txt dans un tableau
    Bonsoir a tous,

    Aprés avoir générer un fichier txt contenant 10 chiffres aléatoires, j'aimerais charger dans un tableau en mémoire les nombres contenus dans mon fichier

    mon random
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import random
     
    fichier=open('nombres.txt','w')
    for i in range(10):
        nombre = random.randint(1,10)
        fichier.write('%s ' %(nombre))
     
    fichier.close() # Ferme le fichier
    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    En Python, on peut faire cela ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> import random
    >>> with open('nombres.txt', 'w') as f:
    ...      for x in range(10): print(random.randint(1, 10), file=f)
    ...
    >>> data = [ int(z) for z in open('nombres.txt', 'r').read().split() ]
    >>> data
    [3, 8, 10, 9, 3, 9, 4, 6, 10, 4]
    >>>
    mais çà serait bien d'ouvrir un tuto car fichiers, listes, chaines de caractères sont quand même des structures de bases que vous devez essayez de maîtriser car ce sont des objets de bases avec lesquels vous allez devoir penser vos codes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre expérimenté Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Par défaut
    le but est lequel ? t'aurais pu continuer dans le meme post au lieu d'en creer un nouveau. Que cherches tu a faire ? afin qu'on taide mieux

  4. #4
    Membre habitué Avatar de Bearb
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    Désole du retard, mais j avais cours, en fait j'aimerais pouvoir faire un petit programme qui me permette de générer une liste de nombres aléatoires dans un fichier txt pour ensuite l'importer dans un tableau, pour enfin l'utiliser dans différent type de tri.

    Je continuerais sur ce sujet à l'avenir.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par Bearb Voir le message
    Désole du retard, mais j avais cours, en fait j'aimerais pouvoir faire un petit programme qui me permette de générer une liste de nombres aléatoires dans un fichier txt pour ensuite l'importer dans un tableau, pour enfin l'utiliser dans différent type de tri.
    Si le seul intérêt est de permettre aux différents algo. programmes de travailler sur les mêmes suites de nombres, j'utilise dans ce cas random.seed. La suite de nombres aléatoire est alors construite à partir de l'entier passé en paramètre. On récupère les mêmes tirages d'une exécution à l'autre. Et c'est très sympa pour tester.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre habitué Avatar de Bearb
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    merci mais dans la structure de mon programme, je dois absolument respecter les étapes écrit plus haut :

    1. générer un fichier text avec 10 nombres aléatoire OK (grace a vous)
    2.importer ces nombres dans un tableau en mémoire (la ou je bloque)
    Merci

  7. #7
    Membre habitué Avatar de Bearb
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    En fin de compte j'ai réussie a importer mon fichier txt dans un tableau avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fichier = open("nombres.txt", "r")
    lines = fichier.readlines()
    print (lines)
    print (len(lines))
    fichier.close()
    mais bizarrement, il y'a un 1 qui apparait de nul part :
    ['2 10 5 3 1 1 6 8 1 10 ']
    1
    Appuyez sur une touche pour continuer...

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par Bearb Voir le message
    mais bizarrement, il y'a un 1 qui apparait de nul part :
    Relisez vos instructions, vous avez 2 print:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print (lines)
    print (len(lines))
    et le "1" est cohérent avec len(lines)

    C'est bien joli d'essayer d'apprendre en se donnant de petits défis, mais il est préférable d'avoir acquis un minimum de bases "avant"... Histoire de ne pas être complètement paumé au point de ne pas comprendre ce que doivent produire les instructions qu'on a écrit. Et les tutoriels sont là pour çà.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par Bearb Voir le message
    ['2 10 5 3 1 1 6 8 1 10 ']
    on est d'accord que ce n'est pas la même chose que de récupérer une liste de 10 nombres, ici tu récupère une liste de 1 chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ['2 10 5 3 1 1 6 8 1 10 ']          # 1 chaine
    [2, 10, 5, 3, 1, 1, 6, 8, 1, 10]    # 10 nombres
    la méthode la plus avisée est celle de wiztricks décrite plus haut

  10. #10
    Membre habitué Avatar de Bearb
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    Bonsoir,

    j'aimerais vous remercier d'abord pour tout vos conseils, j'ai donc lu quelques tuto comme vous me l'avais dis, et donc mon petit programme avance petit a petit.

    Et donc j'ai rencontré un nouveau problème avec mon code, au moment où j'appel ma fonction pour générer mes chiffres aléatoire de mon fichier texte dans un tableau, il ne me met qu'un seul chiffre dans le fichier text.

    pourtant mon code seul (a part, sans etre dans une fonction) fonctionne normalement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    import random
    #################generer##################
    def generer():
     
    		fichier=open('nombres.txt','w')
    		for i in range(10):
    			nombre = random.randint(1,10)
    		fichier.write('%s ' %(nombre))
    		fichier.close() # Ferme le fichier
     
    ####################charger################
    def charger ():
    	tab = [ int(z) for z in open('nombres.txt', 'r').read().split() ]
    	print (tab)
     
    #################trirapide##################
     
    def trirapide(tab):
    	def swap(i,j):
    	    tmp=a[i]
    	    a[i]=a[j]
    	    a[j]=tmp 
    	    if len(a)<2:
                     return a
                     lesser=[]
    	greater=[]
    	swap(0,len(a)//2)
    	pivot=a[0]
    	for x in itertools.islice(a,1,None):
    		if x <= pivot :
    				lesser.append(x)
    		else:
    		       greater.append(x)
    		       return trirapide(lesser) +[pivot] + trirapide(greater)
     
    ######################MENU##########################
    def menu():
     print ("1.initialiser  2.charger  3.tri-rapide ")
     
    ###################main####################
    menu ()
     
    choix= input("faites votre choix : ")
    if choix=='1':
    	generer()
     
    if choix=='2':
    	charger()
     
    if choix=='3':
    	trirapide()
    Merci

  11. #11
    Membre habitué Avatar de Bearb
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    En fin de compte j'ai trouver une solution a mon probleme j'ai remplacer le code de ma fonction ''generer'' par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def generer ()
    def generer():
    	with open('nombres.txt','w') as fichier:
    		for i in range(10):
    			print(random.randint(1,10), file=fichier)
    c'est le code que vous m'aviez donné a mon problème précédemment.

  12. #12
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    sinon sur ton précédent code à la ligne 8 fichier.write('%s ' %(nombre)) il manque simplement une indentation (le write doit être dans la boucle)

  13. #13
    Membre habitué Avatar de Bearb
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    Merci, c en ordre au niveau des nombres.

    maintenant j'aimerais utilisé le tableau generer a l'aide de mon menu pour l'utilisé dans ma fonction de tri rapide:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #################trirapide##################
     
    def trirapide(tab):
    	def swap(i,j):
    	    tmp=a[i]
    	    a[i]=a[j]
    	    a[j]=tmp 
    	    if len(a)<2:
                     return a
                     lesser=[]
    	greater=[]
    	swap(0,len(a)//2)
    	pivot=a[0]
    	for x in itertools.islice(a,1,None):
    		if x <= pivot :
    				lesser.append(x)
    		else:
    		       greater.append(x)
    		       return trirapide(lesser) +[pivot] + trirapide(greater)
    merci

Discussions similaires

  1. import fichier txt dans sql server
    Par casa51 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/09/2009, 23h53
  2. [Designer V5-V6] Import fichier TXT dans BO 6.5 - Prob EMPTY
    Par Breizh22p dans le forum Débuter
    Réponses: 2
    Dernier message: 23/07/2009, 14h07
  3. [E-03] import fichier txt dans la feuille active
    Par triaguae dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2008, 15h59
  4. [DDE]Import fichier .txt dans une base Access
    Par stoonman dans le forum Access
    Réponses: 3
    Dernier message: 23/03/2007, 19h08
  5. Importer fichier .txt dans Mysql
    Par Jarod23 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/03/2007, 10h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo