我有这个脚本从给定的网址地址下载所有图像:
miniPyGrammar = Grammar()
def parse_test(
programName: str,
programCode: str):
success = miniPyGrammar.parse(programCode)
if success:
print('{} is a valid miniPyProgram :)'.format(programName))
else:
print('{} is not a valid miniPyProgram'.format(programName))
print(miniPyGrammar.synTree)
def tree_traversal(code):
for node in miniPyGrammar.synTree:
print(node)
def execute_tests():
for name, code in programs.items():
parse_test(name, code)
tree_traversal(code)
if __name__ == '__main__':
execute_tests()
我的问题是:如何使这个脚本将所有图片保存到我的Windows机器上的特定文件夹位置?
答案 0 :(得分:2)
您需要指定要保存文件的路径。这在the documentation for urllib.urlretrieve
:
方法是:urllib.urlretrieve(url[, filename[, reporthook[, data]]])
。
文档说:
第二个参数(如果存在)指定要复制到的文件位置(如果不存在,该位置将是具有生成名称的临时文件)。
因此...
urllib.urlretrieve(src, 'location/on/my/system/foo.png')
将图像保存到指定的文件夹。
另外,请考虑审核documentation for os.path
。这些函数将帮助您操作文件名和路径。
答案 1 :(得分:1)
urlretrieve
默认情况下将文件保存在当前工作目录中。您可以通过执行更改工作目录
import os
os.chdir(r"C:\Users\Administrator\Downloads\images\")
答案 2 :(得分:1)
如果您使用请求库,您可以有效地填充非常大的图像文件(或小图像文件)并安排将它们以明显的方式存储在您选择的位置。
使用此代码,您将获得一只比格犬的漂亮照片!
image_url
是远程图像的链接。file_path
是您要在本地存储图像的位置。它可以包括一个文件名或完整路径,供您选择。chunk_size
是从远程站点获取每个slurp时要下载的文件片段的大小。length
是本地写入的作品的实际大小。由于我是以交互方式进行此操作,因此我主要将其放入,以便我不必在屏幕上查看1024的长垂直流。...
>>> import requests
>>> image_url = 'http://maxpixel.freegreatpicture.com/static/photo/1x/Eyes-Dog-Portrait-Animal-Familiar-Domestic-Beagle-2507963.jpg'
>>> file_path = r'c:\scratch\beagle.jpg'
>>> r = requests.get(image_url, stream=True)
>>> with open(file_path, 'wb') as beagle:
... for chunk in r.iter_content(chunk_size=1024):
... length = beagle.write(chunk)