begin process at 2010 09 04 20:56:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Python

 > 

Archives

 > 

Au secours !!!

 > 

je plante python toutes les 3 lignes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

je plante python toutes les 3 lignes

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ée 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,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales