Bonjour,
Y a-t-il des utilisateurs Python sous OSX dans la salle ?
Le script en question ouvre le fichier en mode "a+" pour
- lire le contenu par readlines()
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
fp.write('toto')
fp.readline()
''
fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'
fp.close()
J'ai corrigé le problème en ouvrant le fichier en lecture, puis en le
rouvrant ensuite en écriture, mais ce problème m'inquiète.
Bonjour,
Y a-t-il des utilisateurs Python sous OSX dans la salle ?
Le script en question ouvre le fichier en mode "a+" pour
- lire le contenu par readlines()
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
fp.write('toto')
fp.readline()
''
fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'
fp.close()
J'ai corrigé le problème en ouvrant le fichier en lecture, puis en le
rouvrant ensuite en écriture, mais ce problème m'inquiète.
Bonjour,
Y a-t-il des utilisateurs Python sous OSX dans la salle ?
Le script en question ouvre le fichier en mode "a+" pour
- lire le contenu par readlines()
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
fp.write('toto')
fp.readline()
''
fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'
fp.close()
J'ai corrigé le problème en ouvrant le fichier en lecture, puis en le
rouvrant ensuite en écriture, mais ce problème m'inquiète.
Le script en question ouvre le fichier en mode "a+" pour - lire le
contenu par readlines()
Voila.
Mode a+, c'est à dire append. Donc des que tu as ajouté du contenu,
l'iterateur se trouve à la fin du fichier.fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
fp.write('toto')
fp.readline()
''fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'fp.close()
Valable aussi pour readlines()
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'r')
fp.readlines()
['integr.winn', 'columbia?Datan', 'outn', 'Icon?n', 'Merge?Outn']
fp.close()
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'a+')
fp.readlines()
[]
fp.close()
Le script en question ouvre le fichier en mode "a+" pour - lire le
contenu par readlines()
Voila.
Mode a+, c'est à dire append. Donc des que tu as ajouté du contenu,
l'iterateur se trouve à la fin du fichier.
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
fp.write('toto')
fp.readline()
''
fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'
fp.close()
Valable aussi pour readlines()
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'r')
fp.readlines()
['integr.winn', 'columbia?Datan', 'outn', 'Icon?n', 'Merge?Outn']
fp.close()
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'a+')
fp.readlines()
[]
fp.close()
Le script en question ouvre le fichier en mode "a+" pour - lire le
contenu par readlines()
Voila.
Mode a+, c'est à dire append. Donc des que tu as ajouté du contenu,
l'iterateur se trouve à la fin du fichier.fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
fp.write('toto')
fp.readline()
''fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'fp.close()
Valable aussi pour readlines()
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'r')
fp.readlines()
['integr.winn', 'columbia?Datan', 'outn', 'Icon?n', 'Merge?Outn']
fp.close()
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'a+')
fp.readlines()
[]
fp.close()
Le 28 Apr 2005, Guillaume Bouchard a dit :Le script en question ouvre le fichier en mode "a+" pour - lire le
contenu par readlines()
Voila.
Mode a+, c'est à dire append. Donc des que tu as ajouté du contenu,
l'iterateur se trouve à la fin du fichier.fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
Donc 'a+' permet bien de lire le contenu du fichier ?fp.write('toto')
fp.readline()
''fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'fp.close()
Valable aussi pour readlines()
Oui, mais non :fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'r')
fp.readlines()
['integr.winn', 'columbia?Datan', 'outn', 'Icon?n', 'Merge?Outn']fp.close()
Or,fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'a+')
fp.readlines()
[]fp.close()
Je n'ai pas le même comportement.
C'est donc un bug possible (?) que je veux bien signaler si je savais
comment vérifier s'il n'est pas déjà signalé/corrigé.
Le 28 Apr 2005, Guillaume Bouchard a dit :
Le script en question ouvre le fichier en mode "a+" pour - lire le
contenu par readlines()
Voila.
Mode a+, c'est à dire append. Donc des que tu as ajouté du contenu,
l'iterateur se trouve à la fin du fichier.
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
Donc 'a+' permet bien de lire le contenu du fichier ?
fp.write('toto')
fp.readline()
''
fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'
fp.close()
Valable aussi pour readlines()
Oui, mais non :
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'r')
fp.readlines()
['integr.winn', 'columbia?Datan', 'outn', 'Icon?n', 'Merge?Outn']
fp.close()
Or,
fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'a+')
fp.readlines()
[]
fp.close()
Je n'ai pas le même comportement.
C'est donc un bug possible (?) que je veux bien signaler si je savais
comment vérifier s'il n'est pas déjà signalé/corrigé.
Le 28 Apr 2005, Guillaume Bouchard a dit :Le script en question ouvre le fichier en mode "a+" pour - lire le
contenu par readlines()
Voila.
Mode a+, c'est à dire append. Donc des que tu as ajouté du contenu,
l'iterateur se trouve à la fin du fichier.fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
Donc 'a+' permet bien de lire le contenu du fichier ?fp.write('toto')
fp.readline()
''fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'fp.close()
Valable aussi pour readlines()
Oui, mais non :fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'r')
fp.readlines()
['integr.winn', 'columbia?Datan', 'outn', 'Icon?n', 'Merge?Outn']fp.close()
Or,fp = open('/Volumes/SeKiOS9/User/dev_prj/Sage/columbia/.cvsignore', 'a+')
fp.readlines()
[]fp.close()
Je n'ai pas le même comportement.
C'est donc un bug possible (?) que je veux bien signaler si je savais
comment vérifier s'il n'est pas déjà signalé/corrigé.
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'fp.write('toto')
fp.readline()
''fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'fp.close()
Non, ce n'est pas un bug. Guillaume t'a expliqué ton problème déjà.
avec a tu te positionnes à la fin du fichier donc il n'y a plus rien à
lire dans le fichier ce qui explique ta liste vide.
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'
fp.write('toto')
fp.readline()
''
fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'
fp.close()
Non, ce n'est pas un bug. Guillaume t'a expliqué ton problème déjà.
avec a tu te positionnes à la fin du fichier donc il n'y a plus rien à
lire dans le fichier ce qui explique ta liste vide.
fp = open('ex.py','a+')
fp.readline()
'#!/usr/bin/env pythonn'fp.write('toto')
fp.readline()
''fp.seek(0)
fp.readline()
'#!/usr/bin/env pythonn'fp.close()
Non, ce n'est pas un bug. Guillaume t'a expliqué ton problème déjà.
avec a tu te positionnes à la fin du fichier donc il n'y a plus rien à
lire dans le fichier ce qui explique ta liste vide.
avec a tu te positionnes à la fin du fichier donc il n'y a plus rien à
lire dans le fichier ce qui explique ta liste vide.
Je suis peut-être bouché, mais je ne comprends pas.
fp = open("testpop3.py", "a+")
fp.readline()
''
fp.close()
fp = open("testpop3.py", "r")
fp.readline()
'import sysn'
Dans son exemple que je reproduis plus haut, il ouvre bien un fichier
'ex.py' en mode a+, et à la ligne suivante readline() lui retourne bien
quelque chose non ?
avec a tu te positionnes à la fin du fichier donc il n'y a plus rien à
lire dans le fichier ce qui explique ta liste vide.
Je suis peut-être bouché, mais je ne comprends pas.
fp = open("testpop3.py", "a+")
fp.readline()
''
fp.close()
fp = open("testpop3.py", "r")
fp.readline()
'import sysn'
Dans son exemple que je reproduis plus haut, il ouvre bien un fichier
'ex.py' en mode a+, et à la ligne suivante readline() lui retourne bien
quelque chose non ?
avec a tu te positionnes à la fin du fichier donc il n'y a plus rien à
lire dans le fichier ce qui explique ta liste vide.
Je suis peut-être bouché, mais je ne comprends pas.
fp = open("testpop3.py", "a+")
fp.readline()
''
fp.close()
fp = open("testpop3.py", "r")
fp.readline()
'import sysn'
Dans son exemple que je reproduis plus haut, il ouvre bien un fichier
'ex.py' en mode a+, et à la ligne suivante readline() lui retourne bien
quelque chose non ?
f = open("genese_internet.txt", "a+")
f.readline()
'Au début, il y avait UNIX. Enfin, pas exactement. Au début, il y
f.close()
f = open("genese_internet.txt", "a+")
f.readline()
'Au début, il y avait UNIX. Enfin, pas exactement. Au début, il y
f.close()
f = open("genese_internet.txt", "a+")
f.readline()
'Au début, il y avait UNIX. Enfin, pas exactement. Au début, il y
f.close()
«Le fichier est ouvert en lecture et écriture : toutes les méthodes de
f peuvent alors s'appliquer. Le contenu du fichier reste intact s'il
existait déjà : les données ajoutées le seront après ce qu'il
contient. Si le fichier n'existe pas, il est créé. Un appel à f.seek
n'a aucun effet si l'opération d'E/S suivante sur f est une écriture,
mais fonctionne normalement si l'opération suivante est une lecture.»
*Donc* j'en conclus que l'implémentation de Python sur OSX est buggée
pour l'accès en a+...
«Le fichier est ouvert en lecture et écriture : toutes les méthodes de
f peuvent alors s'appliquer. Le contenu du fichier reste intact s'il
existait déjà : les données ajoutées le seront après ce qu'il
contient. Si le fichier n'existe pas, il est créé. Un appel à f.seek
n'a aucun effet si l'opération d'E/S suivante sur f est une écriture,
mais fonctionne normalement si l'opération suivante est une lecture.»
*Donc* j'en conclus que l'implémentation de Python sur OSX est buggée
pour l'accès en a+...
«Le fichier est ouvert en lecture et écriture : toutes les méthodes de
f peuvent alors s'appliquer. Le contenu du fichier reste intact s'il
existait déjà : les données ajoutées le seront après ce qu'il
contient. Si le fichier n'existe pas, il est créé. Un appel à f.seek
n'a aucun effet si l'opération d'E/S suivante sur f est une écriture,
mais fonctionne normalement si l'opération suivante est une lecture.»
*Donc* j'en conclus que l'implémentation de Python sur OSX est buggée
pour l'accès en a+...
Oui, en fait ça ne précise pas où la position est censée se trouver.
Logiquement à la fin en mode append, mais a+ ?
En toute logique à mon avis, si tu cherches à lire dans un fichier même
si comptes y ajouter des données, il ne me paraît pas incongru qu'un
readline te renvoie des données.
Je n'avais pas fait le parallèle avec le C, où je n'ai jamais utilisé
d'ouverture en mode "a+".
C'est quoi irb ? Un interpréteur ruby ?
Oui, en fait ça ne précise pas où la position est censée se trouver.
Logiquement à la fin en mode append, mais a+ ?
En toute logique à mon avis, si tu cherches à lire dans un fichier même
si comptes y ajouter des données, il ne me paraît pas incongru qu'un
readline te renvoie des données.
Je n'avais pas fait le parallèle avec le C, où je n'ai jamais utilisé
d'ouverture en mode "a+".
C'est quoi irb ? Un interpréteur ruby ?
Oui, en fait ça ne précise pas où la position est censée se trouver.
Logiquement à la fin en mode append, mais a+ ?
En toute logique à mon avis, si tu cherches à lire dans un fichier même
si comptes y ajouter des données, il ne me paraît pas incongru qu'un
readline te renvoie des données.
Je n'avais pas fait le parallèle avec le C, où je n'ai jamais utilisé
d'ouverture en mode "a+".
C'est quoi irb ? Un interpréteur ruby ?