Challenge programming

Python

テキストファイルに書き込むための「open」「close」について

書式 f = open(ファイル名, mode="w")
f.write(書き込む値)
f.close()

open(ファイル名, mode="w")でファイルを書き込みモードで開きます。

次にwrite(書き込む値)でデータを書き込みます。

処理が終わったらclose()で閉じます。

例えば、
import requests
url="https://www.ymori.com/books/python2nen/test1.html"
response = requests.get(url)
response.encoding = response.apparent_encoding
filename = "write.txt"
f = open(filename, mode="w")
f.write(response.text)
f.close()


解説

import requests事前にコマンドプロンプトでインストールしたインターネットにアクセス命令する外部ライブラリ「requests」、これをimportします。
load_url = "https://www.ymori.com/books/python2nen/test1.html"変数load_urlに解析するWEBページアドレスを代入
response = requests.get(url)変数responseにネット上のHTMLファイルを読み込む命令のrequests.get(load_url)を代入します。
response.encoding = response.apparent_encoding.apparent_encodingで文字化けしないように正しく表示できる文字コードを自動選択する。
filename = "write.txt"write.txtという名のファイルを作る
f = open(filename, mode="w") ファイルを書き込みモードで開く
f.write(response.text) インターネットから取得したデータを書き込む
f.close() 最後にファイルを閉じる

実行結果

実行すると「write.txt」というテキストが作られ、、、中を確認すると、、

インターネットから取得したデータがちゃんと書き込まれているのが確認できます。

openでのいろいろなモード

openでファイルを開くときに今回、mode="w"としましたが、その他にもいろいろなモードがあります。
"r"読み込み用(デフォルト)
"w"書き込み用
"a"追加読み込み用
"t"テキストモード(デフォルト)
"b"バイナリーモード(画像、音声、動画など)

with文にてテキストファイルに書き込む

close()を省略して書く方法

書式 with open(ファイル名, mode="w") as f:
f.write(書き込む値)

「with」で書き込みモードとしてファイルを開きます。そしてasを使い、ここでは省略形として「f」とします。

インデント(スペースを作って)して、f.write()を使いインターネットから取得したデータを書き込みます。

close()は省略できます。

import requests
url="https://www.ymori.com/books/python2nen/test1.html"
response = requests.get(url)
response.encoding = response.apparent_encoding
filename = "with.txt"
with open(filename, mode="w") as f:
    f.write(response.text)

解説

import requests事前にコマンドプロンプトでインストールしたインターネットにアクセス命令する外部ライブラリ「requests」、これをimportします。
load_url = "https://www.ymori.com/books/python2nen/test1.html"変数load_urlに解析するWEBページアドレスを代入
response = requests.get(url)変数responseにネット上のHTMLファイルを読み込む命令のrequests.get(load_url)を代入します。
response.encoding = response.apparent_encoding日本語が文字化けしないようにする命令。
filename = "write.txt"write.txtという名のファイルを作る
with open(filename, mode="w") as f: ファイルを書き込みモードで開く。省略してfとする
f.write(response.text) インターネットから取得したデータを書き込む
f.write()の前にはインデントしてスペースを空けないとエラー表示(expected an indented block after 'with' statement)がでますのでので注意が必要です。

実行結果

with.txtファイルが作られ、、、

しっかり、データも書き込まれています。

*尚、ここではバージョン「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

プライバシーポリシー