如何使用python请求url和下载文件夹?
我是python新手。我正在尝试请求一个URL(由于postgresql数据库中存储了一个id),该URL会向我发送包含多个文件的zip文件夹如何使用python请求url和下载文件夹?,python,Python,我是python新手。我正在尝试请求一个URL(由于postgresql数据库中存储了一个id),该URL会向我发送包含多个文件的zip文件夹 import psycopg2 import requests url = "https://myurl/" conn = psycopg2.connect(user="XXX", password="XXX", database="XXX", host="loc
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
中指定下载位置,如下所示:)
非常感谢你的回答!您的第一个脚本正在工作我只是内存有问题,我将尝试使用64位版本的Python…D Silveiro的脚本正在工作,但下载15小时后出现错误:
raise BadZipFile(“文件不是zip文件”)zipfile.BadZipFile:File不是zip文件
,但实际上下面的url提供了一个zip文件。。。所以我不明白为什么它说它不是一个zip文件…@MrGreedy引入了错误处理错误/无效zip文件,现在应该可以了:)@MrGreedy如果这解决了问题,请在您有时间时将问题标记为已解决:)是的,谢谢您的帮助@D Silveiro:)!
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()