Challenge programming

Python

ダウンロード用のフォルダを作って保存する方法について。

こちらで、画像ファイルをダウンロードする方法を学びました。

次は、複数の画像ファイルをダウンロードするプログラムを作って、ダウンロード用の「フォルダ」を作り、そこにまとめて書き出すプログラムを作ってみましょう。

書式:フォルダを作る フォルダ = Path("フォルダ名")

*PathのPは大文字です。


書式:フォルダ内のファイルにアクセスするパスを作る フォルダ.joinpath("フォルダ名")

*pは小文字です。


import requests
from pathlib import Path

out_folder = Path("download")
out_folder.mkdir(exist_ok=True)
image_url = "https://www.roadtoupload.com/学びファイル/python2年生/IMG_20201024_160706.jpg"
imgdata = requests.get(image_url)

filename = image_url.split("/")[-1]
out_path = out_folder.joinpath(filename)

with open(out_path, mode="wb")as f:
    f.write(imgdata.content)

解説

import requests事前にコマンドプロンプトでインストールしたインターネットにアクセス命令する外部ライブラリ「requests」、これをimportします。
from pathlib import Pathパソコン上にフォルダを作ったり、そのフォルダにいろいろアクセスしたりするには「Path」を使います。Pathは、標準ライブラリでpathlibというパッケージに入っているのでこのようにimportします。尚、pathlibのpは小文字で、PathのPは大文字です。
out_folder = Path("download")Pathでdownloadという名の保存用フォルダを作り、それを変数out_folderとします。尚、Pは大文字です。
out_folder.mkdir(exist_ok=True)そしてout_folder.mkdir(exist_ok=True)でフォルダが作られます。尚、TrueのTは大文字です。小文字だとエラーになります。
image_url = "https://www.roadtoupload.com/学びファイル/python2年生/IMG_20201024_160706.jpg"
変数image_urlに解析するWEBページアドレスを代入
imgdata = requests.get(image_url)requests.get(image_url)でWEBページのデータを取得し、変数imgdataとします。
filename = image_url.split("/")[-1]保存するときのファイル名が必要なので、URLからファイル名を取り出します。 まずは、URLを「/」で分割します。このバラバラにしたURLの一番最後の値がファイル名です。「-1」は後ろから1番目を指す。それを変数filenameとします。
out_path = out_folder.joinpath(filename)フォルダ内のファイルにアクセスするパスをout_folder.joinpath(filename)で作り、それを変数out_pathとします。
with open(out_path, mode="wb")as f:テキストファイルに書き込むwith openを使い、また画像ファイルはバイナリーファイルなのでファイルを開くときに「mode="wb"」と指定します。
 f.write(imgdata.content)インデントし、インターネットから取得したデータを書き込みます。さらにバイナリーデータなので「.content」を使って書き出します。

実行結果

デスクトップにファイルが作られています。

フォルダの中を確認するとファイルがダウンロードが書き出されています。

*尚、ここではバージョン「Python 3.10.1」を使用しています。

この本を参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。



もっと深く学びたい人にはこちらもどうぞ。| For those who want to learn more deeply, this is also recommended.

キャリアアップに必要なスキルを取得しよう。| Get the skills you need to advance your career.

Pythonエンジニア育成推進協会公式認定スクール | Officially certified school of Python Engineer Development Promotion Association.

ぺージの先頭に戻る(Return to top of page)


©2020年9月 Challenge programming

プライバシーポリシー