8
votes

"Un entier est requis" lorsqu'il est ouvert () 'un fichier comme UTF-8?

J'ai un fichier que j'essaie d'ouvrir en python avec la ligne suivante: xxx

appeler cela me donne l'erreur

typeError: un entier est requis

J'ai supprimé tous les autres code en plus de cette ligne et obtenez toujours l'erreur. Qu'est-ce que j'ai mal fait et comment puis-je l'ouvrir correctement?


2 commentaires

Qu'est-ce que la trace de trace? La dernière ligne est-elle la dernière ligne du f = ouvert (...) ligne ou à l'intérieur des bibliothèques de base Python?


Quelle version de Python? 3.x? ou 2.x?


5 Réponses :


12
votes

de la documentation de Ouvrir () :

ouvert (nom [ mode [ mise en mémoire tampon]])

[...]

L'argument tampon optionnel spécifie le tampon souhaité du fichier Taille: 0 signifie ignorré, 1 signifie la ligne tamponnée, tout autre positif Valeur signifie utiliser un tampon de (environ) cette taille. Un négatif Moyens de mémoire tampon d'utilisation de la valeur par défaut du système, qui est généralement la ligne Tamponné pour les appareils TTY et entièrement tamponnés pour d'autres fichiers. Si omis, la valeur par défaut du système est utilisée.

Vous semblez essayer de passer ouvert () une chaîne décrivant le fichier codant comme troisième argument à la place. Ne fais pas ça.


1 commentaires

Tirer. Tu as raison. Je voulais utiliser Codecs.Open. Merci!



1
votes

Le dernier paramètre à Ouvrir est le Taille du tampon, pas le codage du fichier.

Les flux de fichiers sont plus ou moins encoding-agnostiques (à l'exception de la translation de la nouvelle ligne sur les fichiers non ouverts en mode binaire), vous devez gérer le codage ailleurs (par exemple, lorsque vous obtenez les données avec un Lire () Appel, vous pouvez l'interpréter comme utf-8 à l'aide de son décodage méthode).


0 commentaires

10
votes

Vous utilisez le mauvais ouvert.

open(filename, mode='rb', encoding=None, errors='strict', buffering=1)


0 commentaires

4
votes

de l'aide Documents:

open(...)
    open(file, mode='r', buffering=-1, encoding=None,
         errors=None, newline=None, closefd=True) -> file object


0 commentaires

1
votes

Ceci résolvé mon problème, c'est-à-dire fournir un codage (UTF-8) tout en ouvrant le fichier xxx


0 commentaires