|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : je plante python toutes les 3 lignes [ Archives / Au secours !!! ] (steede)
Informations & options pour cette discussion
jeudi 17 février 2005 à 23:13:29 |
je plante python toutes les 3 lignes

steede
|
bonjour,
Sauriez vous me dire pourquoi le fichier suivant à l'execution :
from os import *
def openfich(): filename = raw_input('Enter file name: ') file = open(filename, 'r') allLines = file.readlines()
retourne l'erreur :
Traceback (most recent call last): File "<pyshell#1>", line 1, in -toplevel- openfich() File "C:\Python24\_M300\chsys.pyw", line 5, in openfich file = open(filename, 'r') TypeError: an integer is required
le code est tiré d'un exemple...
Merci.
|
|
|
vendredi 18 février 2005 à 08:50:20 |
Re : je plante python toutes les 3 lignes

rodrigos
|
salut,
au lieu de la commande open tu peux essayer la commande file(filename, 'r')
en plus file est une méthode de python donc à eviter comme nom de variable:
fichier = file(filename, 'r')
|
|
|
vendredi 18 février 2005 à 13:11:46 |
Re : je plante python toutes les 3 lignes

steede
|
J'avais déjà remarqué que file est une méthode de python, mais bon...
Par contre aujourd'hui le prog. marche sans problème (sans modif !!!).
Je soupçonne mon firewall de ne pas tout laisser passer et de squeezer qqe octets.
C'est AVAST antivirus. Avez vous ce genre de probléme ?
Merci.
|
|
|
mardi 22 février 2005 à 11:38:57 |
Re : je plante python toutes les 3 lignes

taz_iup
|
Voici la réponse a ta question :
Extrait de la doc en ligne de python 2.4 ( www.python.org ) :
| open( |
file, flags[,
mode]) |
- Open the file file and set various flags according to
flags and possibly its mode according to mode. The default
mode is
0777 (octal), and the current umask value is
first masked out. Return the file descriptor for the newly opened file.
Availability: Macintosh, Unix, Windows.
For a description of the flag and mode values, see the C run-time
documentation; flag constants (like O_RDONLY and O_WRONLY) are defined in this module too (see below).
en gros open prend un nom de fichier, un flag( un entier ) et facultativement un mode ( le 'r' )
Il manque donc le parametre flag.
Puis pour reprendre ce qui a été dit cee n'est pas tres malin
d'utiliser comme nom de variable des fonction et nom de classes
built-in. si tu es comme moi un peu radin sur le nombre de caractere
pour les nom de vraible tu n'a qu'a l'appeler fd ou df ( si tu prefere
en francais ) pour File Descriptor ( ou Descripteur de Fichier en
francais. ) comme ca tu n'auras plus de problème de nommage. :D
Voila A plus.
|
|
|
mardi 22 février 2005 à 11:46:17 |
Re : je plante python toutes les 3 lignes

taz_iup
|
Réponse acceptée !
Encore une petite précision
j'avais oublie de copier la petite note...
Note: This function is intended for low-level I/O. For normal
usage, use the built-in function open(), which returns a
``file object'' with read() and write() methods (and many more).
Le truc c'est qu'étant donnée la manière don est ilmporte os, os.open écrase la fonction open built-in donc la doc est :
| open( |
filename[, mode[,
bufsize]]) |
- An alias for the file() function above.
la methode file dont te parlait le jeune homme avant moi. ( toujours extrait de la doc en ligne. )
| file( |
filename[, mode[,
bufsize]]) |
- Return a new file object (described in section 2.3.9, ``File Objects''). The first two arguments are
the same as for
stdio's fopen():
filename is the file name to be opened, mode indicates how
the file is to be opened: 'r' for reading, 'w' for
writing (truncating an existing file), and 'a' opens it for
appending (which on some Unix systems means
that all writes append to the end of the file, regardless of the
current seek position).
Modes 'r+', 'w+' and 'a+' open the
file for updating (note that 'w+' truncates the file). Append
'b' to the mode to open the file in binary mode, on systems that
differentiate between binary and text files (else it is ignored). If the file
cannot be opened, IOError is raised.
In addition to the standard fopen() values
mode may be 'U' or 'rU'. If Python is built
with universal newline support (the default) the file is opened as a text file,
but lines may be terminated by any of '\n', the Unix end-of-line
convention, '\r', the Macintosh convention or '\r\n',
the Windows convention. All of these external representations are seen as
'\n' by the Python program. If Python is built without universal
newline support mode 'U' is the same as normal text
mode. Note that file objects so opened also have an attribute called newlines which has a value of None (if no
newlines have yet been seen), '\n', '\r',
'\r\n', or a tuple containing all the newline types seen.
If mode is omitted, it defaults to 'r'. When opening
a binary file, you should append 'b' to the mode value
for improved portability. (It's useful even on systems which don't treat binary
and text files differently, where it serves as documentation.) The optional bufsize argument specifies the
file's desired buffer size: 0 means unbuffered, 1 means line buffered, any other
positive value means use a buffer of (approximately) that size. A negative
bufsize means to use the system default, which is usually line
buffered for tty devices and fully buffered for other files. If omitted, the
system default is used.
The file() constructor is new in Python 2.2. The
previous spelling, open(), is retained for
compatibility, and is an alias for file()
A mon avis, etant donné qu'il utilise la methode readlines, dans ton
exemple il voulait plutot utilise la fonction built-in alors change ton
import en import os et rajoute os. devant chaque fonction qui provienne
de ton module. ( en effet il n'y a pas de meth readlines sur un
descripteur de fichier, c'est un entier :) )
Bon voila en esperant t'avoir eclairer...
@ +
|
|
|
Cette discussion est classé dans : file, filename, python, plante, openfich
Répondre à ce message
Sujets en rapport avec ce message
tutoriaux python [ par slachz ]
voilà un tuto FR tres remplie en python (il existe en bouquin mais est telechargeable gratuitement) :http://www.ulg.ac.be/cifen/inforef/swi/python.htm
installation python [ par champagnef ]
Bonjour,je suis nouveau sur python. J'apprends (en amateur intéressé) avec le cours de G. Swinnen et autres tuto.Je suis sur Mac Os X.3.5 et je pense
Projet Python: Lecteur de flux RSS. [ par Marvin ]
Amis codeurs, bien le bonjour (ou plutot bonsoir car il est 00:33 ( GTM + 1h ) ) ,J'ai en tête depuis déja quelques jours, de créer un lecteur de flux
Paramétrage de python [ par deguelatore ]
salut à tous. Je voulai vous demandez si on peut se débarrasser du mode interactif de python?? Vous savez les 3 flèches (>>>).C'est juste pas ce que c
Tk vs wx [ par bonac ]
Bonjour,Je doit faire une assez grosse application en python, le problème est que je ne connaissait pas python (du moins de nom) le mois dernier. Cett
Help : Python/DB/CGI [ par Chill_Sik ]
Bonjour à tous, voila qqjours que je me casse les dents sur un petit problème alors je me décide a appeler "au secour" car on ne sait jamais que certa
WebCam [ par DoudouBidou ]
Après plusieurs recherche je n'ai pas trouvé de script python capable de diffusé une webcam sur un réseaudonc je lance le débat, est-il possible de ré
dll avec python? [ par LokR ]
Salut tout le monde!je me pose une kestion, je pense pas que ce soit possible mais d'un autre coté je pensais pas kon puisse faire d' *.exe avec pytho
aide pour xchat svp [ par Jamu ]
Salut a tous Je debute sur xchat et le python ben je connais pas,j'ai chercher des tuto sur google mais j'ai trouvé que des tuto de python en général
les variables vu par Plone... [ par onlybjork ]
Bonjour.Je suis designer, et dans le cadre d'une intégration de charte sous plone, j'ai besoin d'incrémenter tout simplement une variable. Seulement,
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|