Programme lecture/écriture fichiers
Danagos
-
Danagos -
Danagos -
Bonjour à tous,
Je dois écrire un petit script pas très compliqué pour quelqu'un qui connait le langage, ce qui n'est pas encore mon cas.
Le principe c'est d'aller chercher deux valeurs séparées par des tabulations dans chaque ligne d'un fichier précis. De faire de même dans un autre fichier.
Comparer leurs valeurs (là ça va^^) et écrire un fichier résultat avec cette valeur.
Le principe est simple mais j'ai vraiment du mal à comprendre le langage.
Une aide ou un bon tuto en rapport avec ma question me ferait plaisir :)
Merci
Pour extraire les données j'ai vu qu'on pouvait utiliser
contenu=("fichier_a_lire" , "r")
contenu=contenu.split(",")
mais j'en vois pas l'utilité et ça me retourne :
AttributeError: 'file' object has no attribute 'split'
Je n'arrive pas à écrire dans mon fichier lala :
fichier = open ("lala" , "a")
fichier.write ("blabla")
Je dois écrire un petit script pas très compliqué pour quelqu'un qui connait le langage, ce qui n'est pas encore mon cas.
Le principe c'est d'aller chercher deux valeurs séparées par des tabulations dans chaque ligne d'un fichier précis. De faire de même dans un autre fichier.
Comparer leurs valeurs (là ça va^^) et écrire un fichier résultat avec cette valeur.
Le principe est simple mais j'ai vraiment du mal à comprendre le langage.
Une aide ou un bon tuto en rapport avec ma question me ferait plaisir :)
Merci
Pour extraire les données j'ai vu qu'on pouvait utiliser
contenu=("fichier_a_lire" , "r")
contenu=contenu.split(",")
mais j'en vois pas l'utilité et ça me retourne :
AttributeError: 'file' object has no attribute 'split'
Je n'arrive pas à écrire dans mon fichier lala :
fichier = open ("lala" , "a")
fichier.write ("blabla")
A voir également:
- Programme lecture/écriture fichiers
- Écriture facebook - Guide
- Ecriture en gras - Guide
- Lecture fichier epub - Guide
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
Bonsoir,
alors pour récupérer le contenu d'un fichier, on peut le faire avec une de ces trois méthodes :
Après la fonction split() permet de fractionner une chaine de caractères. Tu as dit que tes valeurs étaient séparées par des tabulations, donc ce serait davantage un contenu.split("\t"), à moins qu'il n'y ait autre chose sur les lignes où se trouvent tes valeurs.
Enfin pour cette portion de code :
C'est tout à fait normal que tu n'y arrives pas. Parce que tu ne regardes pas au bon endroit. Ton fichier est bien crée, mais pas là où tu le penses (à savoir au même endroit que ton script). Il se trouve dans le répertoire de Python.
Admettons que ton script se trouve sur ton Bureau, et que tu sois sous Windows.
Le chemin de ton fichier sera donc "C:\Users\Desktop\monFichier"
Il faudra donc faire
N'oublie pas de rajouter une extension .txt à ton fichier, c'est préférable si tu veux l'ouvrir à partir de ton éditeur
alors pour récupérer le contenu d'un fichier, on peut le faire avec une de ces trois méthodes :
fichier = open("chemin_de_mon_fichier", "r") contenu = fichier.read() # récupère tout le contenu contenu = fichier.readline() # récupère une ligne contenu = fichier.readlines() # récupère le contenu dans une liste
Après la fonction split() permet de fractionner une chaine de caractères. Tu as dit que tes valeurs étaient séparées par des tabulations, donc ce serait davantage un contenu.split("\t"), à moins qu'il n'y ait autre chose sur les lignes où se trouvent tes valeurs.
Enfin pour cette portion de code :
fichier = open ("lala" , "a")
C'est tout à fait normal que tu n'y arrives pas. Parce que tu ne regardes pas au bon endroit. Ton fichier est bien crée, mais pas là où tu le penses (à savoir au même endroit que ton script). Il se trouve dans le répertoire de Python.
Admettons que ton script se trouve sur ton Bureau, et que tu sois sous Windows.
Le chemin de ton fichier sera donc "C:\Users\Desktop\monFichier"
Il faudra donc faire
fichier = open("C:/Users/Desktop/monFichier.txt", "a") fichier.write("blabla") fichier.close()
N'oublie pas de rajouter une extension .txt à ton fichier, c'est préférable si tu veux l'ouvrir à partir de ton éditeur
Merci beaucoup, j'arrive à comprendre mieux le problème!
Pour l'écriture c'est bon :)
Pour la lecture un peu moins^^
J'ai du mal a créer la liste, et récupérer les valeurs j'en uis pas encore là! J'avance pour le moment...
En gros j'ai ça :
0.0 5.0 6.3 93 8.4
1.0 5.2 6.5 94 9.6
et je ne veux que les caractères 2 et 3 de chaque ligne (5.0 6.3 et 5.2 6.5)
Et je n'ai pas saisi la notion du chemin du fichier. Le fichier se créer sans avoir à préciser tout le chemin, juste l'extension (son nom quoi).
Pour l'écriture c'est bon :)
Pour la lecture un peu moins^^
J'ai du mal a créer la liste, et récupérer les valeurs j'en uis pas encore là! J'avance pour le moment...
En gros j'ai ça :
0.0 5.0 6.3 93 8.4
1.0 5.2 6.5 94 9.6
et je ne veux que les caractères 2 et 3 de chaque ligne (5.0 6.3 et 5.2 6.5)
Et je n'ai pas saisi la notion du chemin du fichier. Le fichier se créer sans avoir à préciser tout le chemin, juste l'extension (son nom quoi).
J'ai réussi a terminer le script du coup, merci de ton aide pour la lancée. Il reste quelques détails mais je devrais m'en sortir :)
ça me donne ça :
with open("chemin_du_fichier" , "r") as fichier1 :
for line in fichier1 :
contenu1 = line.split()
tab1X += contenu1[1:2]
tab1Y += contenu1[2:3]
#print tab1X
fichier1.close
Je fais ça pour l'autre fichier aussi et j'ai donc des listes avec les valeurs qu'il me faut uniquement et triées.
Ya sans doute plus simple mais ça m'a l'air de fonctionner.
ça me donne ça :
with open("chemin_du_fichier" , "r") as fichier1 :
for line in fichier1 :
contenu1 = line.split()
tab1X += contenu1[1:2]
tab1Y += contenu1[2:3]
#print tab1X
fichier1.close
Je fais ça pour l'autre fichier aussi et j'ai donc des listes avec les valeurs qu'il me faut uniquement et triées.
Ya sans doute plus simple mais ça m'a l'air de fonctionner.