読み込みが出来たので書き込みも簡単かと思います。きっと何も調べなくても大丈夫でしょう。読み込みではreadメソッドだったので、おそらくwriteですね。
スクリプト作ってみます。
takk@deb9:~$ cat w.py f=open("out.txt","w") f.write("AAAA") f.close() takk@deb9:~$
Rubyの書き込みの時の失敗を教訓に”w”も指定してみました。
takk@deb9:~$ python3 w.py takk@deb9:~$ ls out.txt w.py takk@deb9:~$
一発で実行できました。
out.txtが生成されていました。中身を確認しましょう。
takk@deb9:~$ cat out.txt AAAAtakk@deb9:~$
ちゃんと書かれてます。改行してないので、プロンプトと同じ行に表示されて、見難いですが。
“w”がないとRubyのように失敗するのでしょうか。やってみます。
takk@deb9:~$ python3 Python 3.5.3 (default, Jan 19 2017, 14:11:04) [GCC 6.3.0 20170118] on linux Type "help", "copyright", "credits" or "license" for more information. >>> f=open("out2.txt") Traceback (most recent call last): File "<stdin>", line 1, in <module> FileNotFoundError: [Errno 2] No such file or directory: 'out2.txt' >>>
やはり失敗。指定した名前のファイルを探してしまうのですね。
次は、writeメソッドに注目してみます。リファレンスマニュアルを見れば書いてあるのでしょうけど、マニュアルを見ずに感を養いたいです。
>>> f=open("out2.txt","w") >>> type(f.write("AAA")) <class 'int'> >>>
なんとintが戻り値になっています。printしてみます。
>>> print(f.write("AAA")) 3 >>>
3が表示されました。AAAという文字列を引数に渡しましたが、もしや文字数でしょうか。
文字列を変えてやってみましょう。
>>> print(f.write("ABCDEFG")) 7 >>>
やはり文字数と一致してます。
観念してPythonリファレンスを見ると、このように書かれていたので、書き込み成功した文字数が返るのでしょう。
write(s) Write the string s to the stream and return the number of characters written.
コメント