ここまでで､ ファイルの読み方はわかったのですが､ カーソルという煩わしいものがあって､ その上､ ファイルを閉じなければならないのです｡
では､ どうすればこれを解決できるのか｡
さて､ このようなことを実際に行い､ pythonでファイルIOを行うより良い方法は､ 内蔵のwithステートメントを使用することです｡
今までの代わりにお見せしましょう､ これから言うことは｡
幅はオープン｡
ファイル名です｡
そして､ 好きな変数として言ってください｡
だから､ 私のファイル｡
つまり､ openでは､ 実際にこのようなことができるのですが､ 閉じることを気にする必要はないのです｡
ですから､ ほとんどの場合､ widthステートメントを使いたいのです｡
これは､ Pythonでファイルを扱う正しい方法です｡
そして､ ここで保存して実行すると
私の台本です｡
いや､ そうではない｡
ここのカラムを忘れたのでエラーになるんです｡
また走ったら｡
これでよしとする｡
出力は得られるし､ ファイルを閉じる必要もない｡
すべて私のためにやってくれているのです｡
つまり､ これはファイルを読むための標準的な方法なのです｡
今すぐ
ファイルに書き込む場合はどうするか？
今までは読むだけでしたが､ 実際にフードの下にあるopenにはmodeというデフォルトのパラメータがあります｡
Readの略であるRに等しい｡
つまり､ このモードでは､ ファイルを読むことができるのです｡
モードを指定しない場合は､ 自動的に読み出し中とみなされるだけです｡
でも､ ファイルに書き込むのなら､ 単純にWでできますよね？
だから､ これを実行すると
エラーが出るようになったんですね｡
サポートされていない操作､ 読み取れない､ からです｡
まあ､ ファイルは書き込むしかないんですけどね｡
だから､ 私が読み書きをするためには､ 書くことができるのです｡
あ､ wそうなんだ｡
さて......どうでしょう｡
いや､ そうではない｡
実は､ そういうわけではないんです｡
そうだろうと思うでしょう｡
RW でも､ これにはちょっとしたコツがあるんです｡
読み書きをするために
プラスは読んでいます｡
これを実行すればいいように｡
わかりました｡
読んだり書いたりしていると､ これが空になったので､ 空のリストが表示されます｡
では､ ここでファイルに書き込んでみましょう｡
これをもう少し小さくして､ よく見えるようにしましょう｡
このファイルに､ テキストを表示させたいとします｡
そしてこの文章では､ 私のファイル・ドットということにします｡
そうですね｡
そして､ 好きな文章を書くことができる｡
そこで､ ちょっと､ 言ってみましょう｡
私です｡
ここで､ テキストを印刷する場合｡
そして､ これを実行します｡
11点？
うーん｡
これは何なんだ｡
11?
まあ､ 今はそんなことはどうでもいいんですけどね｡
私たちが注目したいのは､ 「ねえ､ 私なんです｡
ファイルに読み込んでいます｡
では､ もう一度ファイルを開いて実際に書き込むとしましょう｡
今回は､ スマイルを書くとしましょう｡
これを実行すると
そして､ 戻ってください｡
わかりました｡
ファイルに書き込んだように見えますが｡
ああ｡
これは､ ファイルに何かを書き込むときに必要なものなのでしょうか？
カーソルがリセットされます｡
ファイルを開くときのことを思い出してください｡
カーソルがゼロになる｡
そして､ 私たちはすぐにファイルにアクセスします｡
そして､ そこにすでに存在するものがあれば､ まあ上書きしてしまうわけですから､ 気をつけないといけませんね｡
ところで､ このテキストファイルは､ 私たちがスマイリーフェイスという2つの文字を書いたことを教えてくれたんだ｡
なるほど｡
では､ どうすればこれを解決できるのか｡
今まで持っていたものを壊さないようにするにはどうしたらいいのか｡
というのは､ ちょっと､ 私なんですが､ 最後にスマイリーフェイスを付けたいだけなんです｡
まあ､ アペンドモードを使えばいいんですけどね｡
アペンドモードはaで､ これはファイルの末尾にアペンドします｡
このように､ スマイリーフェイスで私ですと実行すると､ 末尾に追加されます｡
それがアペンドモードなんですね｡
ここでもwを使って書くことができる｡
そして､ これを実行すると
スマイルマークが追加されます｡
さて､ なぜ前回のように既存のものを上書きするようなことをしなかったのでしょうか｡
まあ､ 私たちのモードのせいなんですけどね｡
Wはファイルへの書き込みを可能にする｡
以前､ 私たちが読み書きをしたとき｡
何が起こったかというと､ ファイルを読んだのです｡
もう一度実行してみましょう｡
実は､ 話を戻そう｡
ね､ そのまんまの私です｡
また､ これを実行すると
読み書きができたからです｡
カーソルがゼロに設定され､ 右のようにすれば対してオーバーロードされた｡
これは新しいファイルであり､ 単にスマイリーフェイスを追加したいだけであると見なされます｡
ここで実行をクリックすると､ それが見えますか？
今はスマイリーフェイスだけです｡
だから､ 必要なものに応じて適切なモードを使うように気をつけたいですね｡
さて､ 存在しないファイルを作りたいとします｡
Happy Textというファイルを用意しましょう｡
あるいは
実は､ いや､ そうしよう｡
そして､ これは悲しい顔を書いている｡
しかし､ デスクトップにこれがないことを忘れないでください｡
これをクリアしてうちのデスクトップを見ると､ 決まった文章がないんです｡
もし､ ここでプラスを読むとしたら｡
だから､ 読んで書いて､ 私はこれを実行します｡
ファイルが見つからないというエラーが発生します｡
ここを右にして､ これを実行すると｡
わかりました｡
うまくいったようです｡
ファイルを見ると､ 今､ 悲しい文章があるんです｡
だから今､ 私がそれを開くと
フェイステキストに座らせています｡
そのため､ 書き込みも､ まだファイルが存在しない場合は新規に作成し､ 既存のファイルを上書きします｡
そのため､ モードについては､ 追記するのか､ 読み込むのか､ 読み書きをするのか､
もう一度注意したいところです｡
しかし､ ほとんどの場合､ 最も一般的なものは､ 読み取り､ 書き込み､ 追記です｡
さて､ 次のビデオでは､ この「ファイル」という考え方についてお話したいと思います｡
とりあえずテキストファイルと書きましたが､ 何を書いてもよかったんです｡
やろうと思えば､ ドットパイファイルもできたんですよ｡
しかし､ フォルダー内など､ 異なる場所にあるファイルにアクセスする場合はどうでしょうか｡
次回のビデオでは､ そのテーマを掘り下げます｡