如何将图片下载到Windows上的特定文件夹位置?

时间:2017-08-20 13:02:54

标签: python selenium

我有这个脚本从给定的网址地址下载所有图像:

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机器上的特定文件夹位置?

3 个答案:

答案 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)