ouverture de fichier en python 3 : erreur

ouverture de fichier en python 3 : erreur - Python - Programmation

Marsh Posté le 08-03-2020 à 11:45:54    

Bonjour à tous.
 
Je débute en python mais là je sèche un peu, je me contente de reprendre les exemples de cours en ligne et ça ne fonctionne pas.
 
Je veux simplement écrire dans un fichier texte, et quand je déclare l'objet avec le chemin et le mode d'ouverture j'ai une erreur (je tourne un python 3.6.9 sous linux)
 
>>> file=open('fichier.txt' , 'a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required (got type str)
 
pourquoi me dit-il qu'il attend un entier alors que le mode d'ouverture se passe en chaîne de caractères ?
 
Merci


---------------
"Parceque toi tu fracasses du migrant à la batte de baseball, c'est ça ?" - Backbone-
Reply

Marsh Posté le 08-03-2020 à 11:45:54   

Reply

Marsh Posté le 08-03-2020 à 17:13:03    

Tu dois utiliser la mauvaise fonction "open", tu as bien fait un "import os" au début ?

Reply

Marsh Posté le 08-03-2020 à 20:38:43    

ouaip.
 
c'est incompréhensible. J'ai juste recopié un exemple :

Code :
  1. import os
  2. file=os.open('fichier.txt','a')
  3. file.write("blabla" )
  4. file.close()


Code :
  1. Audace@Audace$ python3 test-fichier.py
  2. Traceback (most recent call last):
  3.   File "test-fichier.py", line 3, in <module>
  4.     file=os.open('fichier.txt','a')
  5. TypeError: an integer is required (got type str)


 
 
ou via l'interpréteur
 

Code :
  1. Python 3.6.9 (default, Nov  7 2019, 10:44:02)
  2. [GCC 8.3.0] on linux
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> from os import open
  5. >>> fichier=open('truc.txt' , 'a')
  6. Traceback (most recent call last):
  7.   File "<stdin>", line 1, in <module>
  8. TypeError: an integer is required (got type str)
  9. >>>


---------------
"Parceque toi tu fracasses du migrant à la batte de baseball, c'est ça ?" - Backbone-
Reply

Marsh Posté le 08-03-2020 à 20:42:26    

ok, en fait quand j'utilise la fonction "native" open() (sans charger le module "os" ça fonctionne, mais quand je charge le module ça ne fonctionne pas.
 
donc WTF ?

Message cité 1 fois
Message édité par dreamer18 le 08-03-2020 à 20:42:57

---------------
"Parceque toi tu fracasses du migrant à la batte de baseball, c'est ça ?" - Backbone-
Reply

Marsh Posté le 08-03-2020 à 22:32:13    

dreamer18 a écrit :

ok, en fait quand j'utilise la fonction "native" open() (sans charger le module "os" ça fonctionne, mais quand je charge le module ça ne fonctionne pas.
 
donc WTF ?


 
N'utilise pas os.open sauf si tu as besoin d'accéder à des flags de l'OS. Il n'a pas les même arguments que open()
 
os.open prend en argument le filename, suivi du mode d'ouverture ledit mode étant encodé non pas sous la forme de string "a" mais de flags entiers https://docs.python.org/3/library/os.html:  
 
The following constants are options for the flags parameter to the open() function. They can be combined using the bitwise OR operator |. Some of them are not available on all platforms. For descriptions of their availability and use, consult the open(2) manual page on Unix or the MSDN on Windows.
 
os.O_RDONLY
os.O_WRONLY
os.O_RDWR
os.O_APPEND
os.O_CREAT
os.O_EXCL¶
os.O_TRUNC


Message édité par Anonymouse le 08-03-2020 à 22:33:23
Reply

Marsh Posté le 08-03-2020 à 23:34:31    

Merci !


---------------
"Parceque toi tu fracasses du migrant à la batte de baseball, c'est ça ?" - Backbone-
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed