gpt4 book ai didi

python - 如何使用python请求url和下载文件夹?

转载 作者:行者123 更新时间:2023-12-04 09:13:37 26 4
gpt4 key购买 nike

我是python的新手。我正在尝试请求一个 URL(感谢存储在 postgresql 数据库中的 id),该 URL 向我发送包含多个文件的 zip 文件夹。

import psycopg2
import requests

url = "https://myurl/"
conn = psycopg2.connect(user="XXX", password="XXX", database="XXX", host="localhost", port="5432")
print("Successfully connected!")
cur = conn.cursor()
sql ="select id from public.base"
cur.execute(sql)

row = [item[0] for item in cur.fetchall()]

for d in row:
requests.post(url+d)
requests.post(url+d) 正在工作,我有 200 响应。
但是我不知道如何执行以下步骤,也就是说将这些zip文件夹上传到我的工作区中...

最佳答案

您可以使用 zipfile & io库,在 extractall 中指定您的下载位置,像这样:)

from psycopg2 import (
connect,
OpertionalError,
)
from zipfile import (
BadZipFile,
ZipFile,
)
from io import BytesIO
import requests


def download_zip(url):
response = requests.get(url)
if response.ok:
try:
z = ZipFile(BytesIO(response.content))
z.extractall("/path/to/destination_directory")
except BadZipFile as ex:
print('Error: {}'.format(ex))

print('Download succeeded: {}'.format(url))
else:
print('Connection failed: {}'.format(url))


def main():
conn = connect(
user='XXX',
password='XXX',
database='XXX',
host='localhost',
port='5432',
)
try:
cur = conn.cursor()
cur.execute('select id from public.base')
except OperationalError:
exit(0)

row = [item[0] for item in cur.fetchall()]

for id in row:
download_zip('https://myurl/{}'.format(id))

print('Download completed')


if __name__ == '__main__':
main()

关于python - 如何使用python请求url和下载文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63309439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com