- Как загрузить файлы с помощью библиотеки запросов Python
- Вступление
- Загрузка одного файла с помощью библиотеки запросов Python
- Загрузка нескольких файлов с помощью библиотеки запросов Python
- Вывод
- Читайте ещё по теме:
- Rukovodstvo
- статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
- Как загружать файлы с помощью библиотеки запросов Python
- Введение Python поддерживается многими библиотеками, которые упрощают передачу данных по HTTP. Библиотека запросов — один из самых популярных пакетов Python, поскольку он активно используется при парсинге веб-страниц. Он также популярен для взаимодействия с серверами! Библиотека упрощает загрузку данных в популярном формате, таком как JSON, а также упрощает загрузку файлов. В этом руководстве мы рассмотрим, как загружать файлы с помощью библиотеки запросов Python. Статья начнется с рассмотрения
- Вступление
- Загрузка одного файла с помощью библиотеки запросов Python
- Загрузка нескольких файлов с помощью библиотеки запросов Python
- Заключение
Как загрузить файлы с помощью библиотеки запросов Python
В этом уроке вы узнаете, как загружать файлы с помощью библиотеки запросов Python. Мы рассмотрим загрузку отдельных и многих файлов в одном запросе.
Вступление
Python поддерживается многими библиотеками, которые упрощают передачу данных по протоколу HTTP. Библиотека requests является одним из самых популярных пакетов Python, поскольку она активно используется в веб-скрейпинге. Он также популярен для взаимодействия с серверами! Библиотека позволяет легко загружать данные в популярном формате, таком как JSON, но также позволяет легко загружать файлы.
В этом уроке мы рассмотрим, как загружать файлы с помощью библиотеки Python requests . Статья начнется с описания библиотеки requests и сигнатуры функции post () . Далее мы рассмотрим, как загрузить один файл с помощью пакета requests . И последнее, но не менее важное: мы загружаем несколько файлов в одном запросе.
Загрузка одного файла с помощью библиотеки запросов Python
В этом уроке рассказывается о том, как отправлять файлы, но нас не волнует, как они создаются. Чтобы следовать дальше, создайте три файла с именем my_file.txt , my_file_2.txt и my_file_3.txt .
Первое, что нам нужно сделать, это установить нашу библиотеку request в нашем рабочем пространстве. Хотя это и не обязательно, рекомендуется устанавливать библиотеки в виртуальной среде:
Активируйте виртуальную среду, чтобы мы больше не влияли на глобальную установку Python:
Теперь давайте установим библиотеку requests с помощью pip :
Создайте новый файл с именем single_uploader.py который будет хранить наш код. В этом файле давайте начнем с импорта библиотеки requests :
Теперь мы готовы загрузить файл! При загрузке файла нам нужно открыть его и передать содержимое в потоковом режиме. В конце концов, мы не можем загрузить файл, к которому у нас нет доступа. Мы сделаем это с помощью функции open () .
Функция open() принимает два параметра: путь к файлу и mode . Путь к файлу может быть абсолютным или относительным путем к тому месту, где выполняется скрипт. Если вы загружаете файл в тот же каталог, вы можете просто использовать его имя.
Второй аргумент, mode, будет принимать значение “read binary”, которое представлено rb . Этот аргумент говорит компьютеру, что мы хотим открыть файл в режиме чтения, и мы хотим использовать данные файла в двоичном формате:
test_file = open("my_file.txt", "rb")
Примечание : важно читать файл в двоичном режиме. Библиотека requests обычно определяет заголовок Content-Length , который представляет собой значение в байтах. Если файл не читается в байтовом режиме, библиотека может получить неверное значение для Content-Length , что приведет к ошибкам при отправке файла.
Для этого урока мы сделаем запросы к бесплатному сервису httpbin . Этот API позволяет разработчикам тестировать свои HTTP-запросы. Давайте создадим переменную, которая хранит URL-адрес, по которому мы будем публиковать наши файлы:
test_url = "http://httpbin.org/post"
Теперь у нас есть все, чтобы сделать запрос. Мы будем использовать метод post() библиотеки requests для загрузки файла. Чтобы это сработало, нам нужны два аргумента: URL-адрес сервера и свойство files . Мы также сохраним ответ в переменной, напишем следующий код:
test_response = requests.post(test_url, files = )
Свойство files принимает словарь. Ключ-это имя поля формы, которое принимает файл. Значение-это байты открытого файла, который вы хотите загрузить.
Обычно, чтобы проверить, был ли ваш метод post() успешным, мы проверяем код состояния HTTP ответа. Мы можем использовать свойство ok объекта response, test_url . Если это правда, то мы распечатаем ответ с HTTP-сервера, в этом случае он будет эхом повторять запрос:
if test_response.ok: print("Upload completed successfully!") print(test_response.text) else: print("Something went wrong!")
Давайте попробуем! В терминале выполните свой скрипт с помощью команды python :
Ваш вывод будет похож на этот:
Upload completed successfully! < "args": <>, "data": "", "files": < "form_field_name": "This is my file\nI like my file\n" >, "form": <>, "headers": < "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Content-Length": "189", "Content-Type": "multipart/form-data; boundary=53bb41eb09d784cedc62d521121269f8", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.0", "X-Amzn-Trace-Id": "Root=1-5fc3c190-5dea2c7633a02bcf5e654c2b" >, "json": null, "origin": "102.5.105.200", "url": "http://httpbin.org/post" >
В качестве проверки здравомыслия вы можете проверить, что значение form_field_name совпадает с тем, что находится в вашем файле.
Загрузка нескольких файлов с помощью библиотеки запросов Python
Загрузка нескольких файлов с помощью запросов очень похожа на один файл, с основным отличием в том, что мы используем списки. Создайте новый файл с именем multi_uploader.py и следующий установочный код:
import requests test_url = "http://httpbin.org/post"
Теперь создайте переменную с именем test_files это словарь с несколькими именами и файлами:
Как и раньше, ключи-это имена полей формы, а значения-файлы в байтах.
Мы также можем создавать переменные наших файлов в виде списка кортежей. Каждый кортеж содержит имя поля формы, принимающего файл, за которым следует содержимое файла в байтах:
test_files = [("test_file_1", open("my_file.txt", "rb")), ("test_file_2", open("my_file_2.txt", "rb")), ("test_file_3", open("my_file_3.txt", "rb"))]
Любой из них работает, так что выбирайте тот, который вам больше нравится!
Как только список файлов будет готов, вы можете отправить запрос и проверить его ответ, как и раньше:
test_response = requests.post(test_url, files = test_files) if test_response.ok: print("Upload completed successfully!") print(test_response.text) else: print("Something went wrong!")
Выполните этот скрипт с помощью команды python :
Upload completed successfully! < "args": <>, "data": "", "files": < "test_file_1": "This is my file\nI like my file\n", "test_file_2": "All your base are belong to us\n", "test_file_3": "It's-a me, Mario!\n" >, "form": <>, "headers": < "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Content-Length": "470", "Content-Type": "multipart/form-data; boundary=4111c551fb8c61fd14af07bd5df5bb76", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.0", "X-Amzn-Trace-Id": "Root=1-5fc3c744-30404a8b186cf91c7d239034" >, "json": null, "origin": "102.5.105.200", "url": "http://httpbin.org/post" >
Молодец! Вы можете загружать один или несколько файлов с запросами !
Вывод
В этой статье мы узнали, как загружать файлы на Python с помощью библиотеки requests . Там, где это один файл или несколько файлов, требуется всего несколько настроек с помощью метода post () . Мы также проверили наш ответ, чтобы убедиться, что ваши загрузки были успешными.
Читайте ещё по теме:
Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Как загружать файлы с помощью библиотеки запросов Python
Введение Python поддерживается многими библиотеками, которые упрощают передачу данных по HTTP. Библиотека запросов — один из самых популярных пакетов Python, поскольку он активно используется при парсинге веб-страниц. Он также популярен для взаимодействия с серверами! Библиотека упрощает загрузку данных в популярном формате, таком как JSON, а также упрощает загрузку файлов. В этом руководстве мы рассмотрим, как загружать файлы с помощью библиотеки запросов Python. Статья начнется с рассмотрения
Вступление
Python поддерживается многими библиотеками, которые упрощают передачу данных по HTTP. Библиотека requests — один из самых популярных пакетов Python, поскольку он активно используется при парсинге веб-страниц. Он также популярен для взаимодействия с серверами! Библиотека упрощает загрузку данных в популярном формате, таком как JSON, а также упрощает загрузку файлов.
В этом руководстве мы рассмотрим, как загружать файлы с помощью библиотеки requests Статья начнется с рассмотрения библиотеки requests и сигнатуры функции post() Далее мы расскажем, как загрузить один файл с помощью пакета requests И последнее, но не менее важное: мы загружаем несколько файлов за один запрос.
Загрузка одного файла с помощью библиотеки запросов Python
В этом руководстве рассказывается, как отправлять файлы, нас не волнует, как они создаются. Чтобы продолжить, создайте три файла с my_file_2.txt my_file.txt , my_file_2.txt и my_file_3.txt .
Первое, что нам нужно сделать, это установить нашу request в нашу рабочую область. Хотя в этом нет необходимости, рекомендуется устанавливать библиотеки в виртуальной среде:
Активируйте виртуальную среду, чтобы мы больше не влияли на глобальную установку Python:
Теперь установим requests с помощью pip :
Создайте новый файл с именем single_uploader.py котором будет храниться наш код. В этом файле давайте начнем с импорта библиотеки requests
Теперь мы готовы загрузить файл! При загрузке файла нам нужно открыть файл и выполнить потоковую передачу содержимого. В конце концов, мы не можем загрузить файл, к которому у нас нет доступа. Сделаем это с помощью функции open() .
Функция open() принимает два параметра: путь к файлу и режим . Путь к файлу может быть абсолютным или относительным путем к тому месту, где выполняется сценарий. Если вы загружаете файл в тот же каталог, вы можете просто использовать имя файла.
Второй аргумент, режим, будет принимать значение «читать двоичное», которое представлено rb . Этот аргумент сообщает компьютеру, что мы хотим открыть файл в режиме чтения, и мы хотим использовать данные файла в двоичном формате:
test_file = open("my_file.txt", "rb")
Примечание : важно читать файл в двоичном режиме. Библиотека requests обычно определяет Content-Length , который представляет собой значение в байтах. Если файл не читается в байтовом режиме, библиотека может получить неверное значение Content-Length , что приведет к ошибкам при отправке файла.
В этом руководстве мы будем делать запросы к бесплатному сервису httpbin . Этот API позволяет разработчикам тестировать свои HTTP-запросы. Давайте создадим переменную, которая хранит URL-адрес, по которому мы будем размещать наши файлы:
test_url = "http://httpbin.org/post"
Теперь у нас есть все, чтобы сделать запрос. Мы будем использовать метод post() requests для загрузки файла. Чтобы это работало, нам нужны два аргумента: URL-адрес сервера и свойство files Также сохраним ответ в переменной, напишем следующий код:
test_response = requests.post(test_url, files = )
Свойство files принимает словарь. Ключ — это имя поля формы, которое принимает файл. Значение — это байты открытого файла, который вы хотите загрузить.
Обычно, чтобы проверить, был ли ваш post() успешным, мы проверяем код состояния HTTP ответа. Мы можем использовать ok объекта ответа test_url . Если это правда, мы распечатаем ответ HTTP-сервера, в этом случае он отобразит запрос:
if test_response.ok: print("Upload completed successfully!") print(test_response.text) else: print("Something went wrong!")
Давай попробуем! В терминале выполните свой скрипт с помощью команды python
Ваш результат будет примерно таким:
Upload completed successfully! < "args": <>, "data": "", "files": < "form_field_name": "This is my file\nI like my file\n" >, "form": <>, "headers": < "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Content-Length": "189", "Content-Type": "multipart/form-data; boundary=53bb41eb09d784cedc62d521121269f8", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.0", "X-Amzn-Trace-Id": "Root=1-5fc3c190-5dea2c7633a02bcf5e654c2b" >, "json": null, "origin": "102.5.105.200", "url": "http://httpbin.org/post" >
form_field_name вы можете убедиться, что значение form_field_name совпадает с тем, что находится в вашем файле.
Загрузка нескольких файлов с помощью библиотеки запросов Python
Загрузка нескольких файлов с помощью запросов очень похожа на загрузку одного файла, с основным отличием, которое мы используем списки. Создайте новый файл с именем multi_uploader.py и следующий установочный код:
import requests test_url = "http://httpbin.org/post"
Теперь создайте переменную с именем test_files которая представляет собой словарь с несколькими именами и файлами:
Как и раньше, ключи — это имена полей формы, а значения — файлы в байтах.
Мы также можем создавать переменные наших файлов в виде списка кортежей. Каждый кортеж содержит имя поля формы, принимающего файл, за которым следует содержимое файла в байтах:
test_files = [("test_file_1", open("my_file.txt", "rb")), ("test_file_2", open("my_file_2.txt", "rb")), ("test_file_3", open("my_file_3.txt", "rb"))]
Любой из них работает, поэтому выберите тот, который вам больше нравится!
Когда список файлов будет готов, вы можете отправить запрос и проверить его ответ, как раньше:
test_response = requests.post(test_url, files = test_files) if test_response.ok: print("Upload completed successfully!") print(test_response.text) else: print("Something went wrong!")
Выполните этот скрипт с помощью команды python
Upload completed successfully! < "args": <>, "data": "", "files": < "test_file_1": "This is my file\nI like my file\n", "test_file_2": "All your base are belong to us\n", "test_file_3": "It's-a me, Mario!\n" >, "form": <>, "headers": < "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Content-Length": "470", "Content-Type": "multipart/form-data; boundary=4111c551fb8c61fd14af07bd5df5bb76", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.0", "X-Amzn-Trace-Id": "Root=1-5fc3c744-30404a8b186cf91c7d239034" >, "json": null, "origin": "102.5.105.200", "url": "http://httpbin.org/post" >
Отличная работа! Вы можете загружать один и несколько файлов с requests !
Заключение
В этой статье мы узнали, как загружать файлы на Python с помощью библиотеки requests Если это один файл или несколько файлов, потребуется всего несколько настроек метода post() Мы также проверили наш ответ, чтобы убедиться, что наши загрузки были успешными.
Licensed under CC BY-NC-SA 4.0