Programme lecture/écriture fichiers

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")

2 réponses

gastroPode
 
Bonsoir,

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
3
Danagos
 
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).
0
Danagos
 
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.
0