Maison >développement back-end >Tutoriel Python >Pourquoi mes téléchargements de fichiers de requêtes Python échouent-ils et comment puis-je y remédier ?

Pourquoi mes téléchargements de fichiers de requêtes Python échouent-ils et comment puis-je y remédier ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 18:36:12748parcourir

Why Are My Python Requests File Uploads Failing, and How Can I Fix Them?

Téléchargement de fichiers avec des requêtes Python

Lorsqu'ils tentent de télécharger un fichier à l'aide de la bibliothèque de requêtes Python, les utilisateurs peuvent rencontrer des situations dans lesquelles le fichier n'est pas reçu avec succès par le serveur. Cela peut être frustrant, surtout lorsque d'autres solutions ne disposent pas des informations nécessaires pour résoudre le problème.

Comprendre le problème

Dans le cas spécifique décrit, l'utilisateur téléchargeait un fichier via une soumission de formulaire en utilisant la méthode request.post(). Malgré le nom et le contenu corrects du fichier, le serveur ne reconnaissait pas le fichier téléchargé. Au lieu de cela, il a signalé que le fichier téléchargé était vide.

La solution

La clé pour résoudre ce problème réside dans la spécification correcte des paramètres des fichiers et des arguments de données de request.post() méthode. Lors du téléchargement d'un fichier, il est essentiel de spécifier un mappage du nom du fichier à son contenu. Dans ce cas, l'utilisateur tentait de définir à la fois les arguments files et data.

L'approche correcte pour télécharger un fichier avec des requêtes Python consiste à utiliser l'argument files pour spécifier le mappage du fichier. Voici un extrait de code mis à jour qui résout le problème :

import requests

url = 'http://nesssi.cacr.caltech.edu/cgi-bin/getmulticonedb_release2.cgi/post'
files = {'upload_file': open('file.txt', 'rb')}
values = {'DB': 'photcat', 'OUT': 'csv', 'SHORT': 'short'}

r = requests.post(url, files=files, data=values)

En plaçant le mappage de fichiers dans l'argument files, la bibliothèque de requêtes gérera automatiquement la soumission du formulaire en plusieurs parties, y compris la définition des en-têtes appropriés.

Gestion des scénarios avancés

Dans certains cas, les utilisateurs peuvent avoir besoin d'un contrôle plus approfondi sur le processus de téléchargement de fichiers. Les requêtes Python prennent en charge diverses options pour personnaliser le mappage de fichiers, notamment en fournissant un nom de fichier et un type de contenu. Pour des scénarios plus complexes, tels que le téléchargement de l'intégralité du corps POST à ​​partir d'un fichier, l'argument data peut être utilisé sans l'argument files.

Conclusion

En comprenant l'utilisation correcte des fichiers et des données arguments, les utilisateurs peuvent télécharger avec succès des fichiers à l'aide de requêtes Python. Cela permet une intégration transparente des téléchargements de fichiers dans des scripts et des programmes automatisés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn