Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/02/2017, à 22:41

Bob dit l'Âne

Apprenti python [RESOLU]

Bonsoir,
Je suis débutant en python et j'apprends seul avec des vidéos sur Youtube.
J'ai un blocage et j'ai beau chercher, je ne trouve pas.
1487536665.png
Quelqu'un peut-il me débloquer sur ce coup là ?

Dernière modification par Bob dit l'Âne (Le 20/02/2017, à 16:17)


DELL G3 17 3779 - 17,3" FHD IPS - Core i5 8300H - RAM 8Go - 1To DD +128Go SSD - NVIDIA GTX 1050 Ti 4 Go
Ubuntu 22.04.3 LTS Home séparé et partition données
Akoya MD 97860 P7612 Core 2 Duo T6500 NVIDIA Realtek RTL8191SE Wireless LAN GeForce G210M
Ubuntu 16.04 LTS (« Xenial Xerus ») + NFS

Hors ligne

#2 Le 19/02/2017, à 22:54

pingouinux

Re : Apprenti python [RESOLU]

Bonsoir,
Fais un copier-coller de la sortie du terminal pour la mettre ici entre balises-code, ça permet de récupérer le texte pour faire des tests.
Montre aussi ton script.

Hors ligne

#3 Le 20/02/2017, à 00:50

Bob dit l'Âne

Re : Apprenti python [RESOLU]

Merci pour ton intervention
Voici la sortie du terminal :

Nom pays,Code pays,2012,2013,2014,2015
Andorre,AND,79316,75902,72786,70473
Afghanistan,AFG,29726803,30682500,31627506,32526562
Angola,AGO,22685632,23448202,24227524,25021974
Albanie,ALB,2900247,2896652,2893654,2889167
Argentine,ARG,42095224,42538304,42980026,43416755
Arménie,ARM,2978339,2992192,3006154,3017712
Australie,AUS,22728254,23117353,23464086,23781169
Autriche,AUT,8429991,8479375,8541575,8611088
Belgique,BEL,11128246,11182817,11231213,11285721

Traceback (most recent call last):
  File "demography2.py", line 13, in <module>
    parse = list(eval(ligne))
  File "<string>", line 1, in <module>
NameError: name 'N' is not defined


------------------
(program exited with code: 1)
Press return to continue

et voici mon script :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#======================================================================================================================
#  demography2.py
#===============================================================================================================================  
nom1="API.csv"                    # affecte le fichier "API.csv" à la variable "nom1"        
fichier = open(nom1)            # pour ouvrir le fichier en mode lecture
contenu = fichier.read()        # récupère le contenu du fichier
lignes=contenu
print(lignes)                            # affichage ou non du contenu de la variable "lignes"
#    pays = ()
for ligne in lignes:                    # itérer sur les lignes (parcourir chaque ligne du fichier pour extraire les données qu'on veut)
    parse = list(eval(ligne))
    print(parse)
    nom = parse[1:2]
    print(nom)

Dernière modification par cqfd93 (Le 20/02/2017, à 07:16)


DELL G3 17 3779 - 17,3" FHD IPS - Core i5 8300H - RAM 8Go - 1To DD +128Go SSD - NVIDIA GTX 1050 Ti 4 Go
Ubuntu 22.04.3 LTS Home séparé et partition données
Akoya MD 97860 P7612 Core 2 Duo T6500 NVIDIA Realtek RTL8191SE Wireless LAN GeForce G210M
Ubuntu 16.04 LTS (« Xenial Xerus ») + NFS

Hors ligne

#4 Le 20/02/2017, à 07:31

pingouinux

Re : Apprenti python [RESOLU]

Essaye ceci :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#======================================================================================================================
#  demography2.py
#=============================================================================================================================== 
nom1="API.csv"                    # affecte le fichier "API.csv" à la variable "nom1"       
fichier = open(nom1)            # pour ouvrir le fichier en mode lecture
lignes = fichier.readlines()        # récupère le contenu du fichier
print(lignes)                            # affichage ou non du contenu de la variable "lignes"
#    pays = ()
for ligne in lignes:                    # itérer sur les lignes (parcourir chaque ligne du fichier pour extraire les données qu'on veut)
    parse = ligne[:-1].split(',')
    print(parse)
    nom = parse[1:2]
    print(nom)

Ajouté : Tu peux même simplifier un peu, sans passer par l'intermédiaire lignes

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#======================================================================================================================
#  demography2.py
#=============================================================================================================================== 
nom1="API.csv"                    # affecte le fichier "API.csv" à la variable "nom1"       
fichier = open(nom1)            # pour ouvrir le fichier en mode lecture
#    pays = ()
for ligne in fichier:                    # itérer sur les lignes (parcourir chaque ligne du fichier pour extraire les données qu'on veut)
    parse = ligne[:-1].split(',')
    print(parse)
    nom = parse[1:2]
    print(nom)

Dernière modification par pingouinux (Le 20/02/2017, à 07:34)

Hors ligne

#5 Le 20/02/2017, à 13:22

Bob dit l'Âne

Re : Apprenti python [RESOLU]

Merci Pingouinux,
J'ai testé tes 2 solutions et ça marche.
Juste encore une petite question pour
parse = ligne[:-1].split(',')            # ?
et pour corriger
Arménie qui s'affiche Arm\xc3\xa9nie.
Pour info, je suis en train de travailler en me basant sur cette vidéo, en concoctant et en utilisant une fonction "extaction_donnees".

Cordialement
JY


DELL G3 17 3779 - 17,3" FHD IPS - Core i5 8300H - RAM 8Go - 1To DD +128Go SSD - NVIDIA GTX 1050 Ti 4 Go
Ubuntu 22.04.3 LTS Home séparé et partition données
Akoya MD 97860 P7612 Core 2 Duo T6500 NVIDIA Realtek RTL8191SE Wireless LAN GeForce G210M
Ubuntu 16.04 LTS (« Xenial Xerus ») + NFS

Hors ligne

#6 Le 20/02/2017, à 14:06

pingouinux

Re : Apprenti python [RESOLU]

parse = ligne[:-1].split(',')            # ?

ligne[:-1] : Omet le dernier caractère de la ligne '\n'
s.split(',') : Retourne une liste à partir de la chaîne de caractères s, en prenant la virgule comme séparateur

Arménie qui s'affiche Arm\xc3\xa9nie.

C'est correct si tu imprimes les éléments de la liste

    print("nom=%s code=%s"%(parse[0],parse[1])

Dernière modification par pingouinux (Le 20/02/2017, à 14:06)

Hors ligne

#7 Le 20/02/2017, à 16:16

Bob dit l'Âne

Re : Apprenti python [RESOLU]

OK, je te remercie.
A plus


DELL G3 17 3779 - 17,3" FHD IPS - Core i5 8300H - RAM 8Go - 1To DD +128Go SSD - NVIDIA GTX 1050 Ti 4 Go
Ubuntu 22.04.3 LTS Home séparé et partition données
Akoya MD 97860 P7612 Core 2 Duo T6500 NVIDIA Realtek RTL8191SE Wireless LAN GeForce G210M
Ubuntu 16.04 LTS (« Xenial Xerus ») + NFS

Hors ligne