J'utilise urllib2
pour lire une page. J'ai besoin de faire une regex rapide sur la source et de retirer quelques variables mais urllib2
se présente comme un objet fichier plutôt qu'une chaîne. Je suis novice en python, donc j'ai du mal à voir comment j'utilise un objet fichier pour le faire. Existe-t-il un moyen rapide de convertir cela en chaîne?Lire l'objet fichier sous forme de chaîne en python
Répondre
Vous pouvez utiliser Python en mode interactif pour rechercher des solutions. Si f
est votre objet, vous pouvez entrer dir(f)
pour voir toutes les méthodes et les attributs. Il y en a un appelé read
. Entrez help(f.read)
et il vous indique que f.read()
est le moyen de récupérer une chaîne à partir d'un objet fichier.
Du doc file.read() (je souligne):
file.read ([size])
Lire la plupart des octets de taille du fichier (moins si la lecture frappe EOF avant d'obtenir des octets de taille). Si l'argument size est négatif ou omis, lisez toutes les données jusqu'à ce que EOF soit atteint. Les octets sont renvoyés sous forme d'objet chaîne. Une chaîne vide est renvoyée lorsque EOF est immédiatement rencontré. (Pour certains fichiers, comme ttys, il est logique de continuer à lire après la frappe d'un EOF.) Notez que cette méthode peut appeler la fonction C sous-jacente plus d'une fois pour obtenir des octets aussi proches que possible de la taille. Notez également qu'en mode non bloquant, moins de données que demandé peuvent être retournées, même si aucun paramètre de taille n'a été donné.
Soyez conscient que la recherche regexp sur un grand objet chaîne peut ne pas être efficace et envisager de faire la ligne par ligne de recherche, en utilisant file.next() (un objet de fichier est son propre itérateur).
Michael Foord, alias Voidspace a un excellent tutoriel sur urllib2 que vous pouvez trouver ici: urllib2 - The Missing Manual
Ce que vous faites devrait être assez simple, observer cet exemple de code:
import urllib2
import re
response = urllib2.urlopen("http://www.voidspace.org.uk/python/articles/urllib2.shtml")
html = response.read()
pattern = '(V.+space)'
wordPattern = re.compile(pattern, re.IGNORECASE)
results = wordPattern.search(html)
print results.groups()
- 1. php regex lire sous forme de sélection
- 2. Chaîne d'entrée compressée sous forme de chaîne
- 3. Lire un fichier énorme en Python
- 4. Représentation sous forme de chaîne de time_t?
- 5. Cryptage du tableau sous forme de chaîne
- 6. Serialize [Flags] énumération sous forme de chaîne
- 7. Comment stocker parse_url sous forme de chaîne en PHP?
- 8. XmlReader - Lit le nœud actuel sous forme de chaîne
- 9. Pour télécharger un fichier Excel sous forme de clob
- 10. Comparaison de nombres sous forme de chaîne dans Oracle
- 11. Comment lire les paramètres d'URL sous forme d'oracle
- 12. Retour de l'image Matplotlib sous forme de chaîne
- 13. Mise en forme du trafic sous Linux
- 14. Mise en forme ma chaîne
- 15. Comment lire un fichier csv avec python
- 16. Comment imprimer le nom de la fonction sous la forme d'une chaîne en Python à l'intérieur de cette fonction
- 17. Comment lire la chaîne de certificats Pkcs # 7 à partir de fichier/flux en C#?
- 18. Lire des fichiers en python
- 19. PHP: comment charger un fichier à partir d'un serveur différent sous forme de chaîne?
- 20. Flex Mxml et propriété sous forme de chaîne, s'échappant ?? Aide
- 21. Obtenir les bits d'octet sous forme de chaîne
- 22. En Python, comment transformer une chaîne en un fichier?
- 23. Lire les octets de la chaîne comme des flottants
- 24. Inversion de chaîne en Python
- 25. arrête les chaînes numériques de mise en forme automatique MS Excel sous forme de nombres
- 26. Comment puis-je envoyer le contenu du fichier sous forme de courrier électronique en Perl?
- 27. PHP ne peut pas lire les fichiers contenant du code PHP sous forme de fichiers texte
- 28. Mettre en forme des nombres en chaînes en Python
- 29. asp.net MVC: Passer une chaîne de requête sous la forme d'une chaîne ou de paramètres individuels?
- 30. Métriques de similarité de chaîne en Python
Merci pour la réponse détaillée (en particulier pour trouver des attributs/méthodes d'objets). .read() a parfaitement fonctionné. – Oli
Excellente réponse de l'école «enseigner à pêcher». Je vous donnerais +2 si je pouvais! –
Parfois, tout ce que nous voulons est d'utiliser stackoverflow comme un livre de référence rapide. La réponse de Gimel est beaucoup plus utile aux googleurs. –