2021年1月2日土曜日

ファイルの読み書き

Pyuthonにおけるファイルの読み書きに関するメモです.

Pythonでファイルを読み出すには以下の3つのステップが必要です.

  1. open() 関数を呼び出し,File オブジェクトを取得する.
  2. File オブジェクトの read() や write() メソッドを呼び出して読み書きをする.
  3. File オブジェクトの close() オブジェクトを呼び出してファイルを閉じる.

上記 1. のopen() 関数を使ってファイルを開くには,以下のようにします.
ここで,file_nameは読み込んだファイルを保管する変数名,Folder name は現在のカレントディレクトリで,File name.txt はカレントディレクトリ(Folder name)にあるFile nameというテキストファイルを指します.

file_name = open('./Folder name/File name.txt')

open() を呼び出すと「テキストファイルを読む」読み込みモードでファイルを開きます.なので,ファイルに書き込んだりと変更を加えることはできません.open() のでふぉるとのモードは読み込みモードですが,以下のように第2引数に 'r' を明示的に記載することもできます('r' は read の頭文字).

f = open('./Folder name/File name.txt''r')

なお,ここで f としているのは良く使われるからという理由だけで,任意の名前を使用することができる.

Pythonでファイルに書き込むことができますが,上記のように読み込みモード('r')で開いたファイルには書き込むことはできません.

ファイルに書き込みを行うには,以下のように書き込みモード('w'),もしくは追記モード('a')でファイルを開く必要があります.なお,書き込みモードは既存のファイルを上書きして最初から書き直すことになります.

f = open('./Folder name/File name.txt''w')
f = open('./Folder name/File name.txt''a')

open() で開いたファイルオブジェクトは close() メソッドで閉じる必要があります.上記のようにして開き,file_name という変数に保管したファイルを閉じるには以下のようにして閉じる必要があります.

f.close()

ファイルと閉じ忘れを予防するには,以下のように with ブロックを使うと,ブロックの終了時に自動的にクローズされるので閉じ忘れがなくなります.インデント以下の f の形式を書くというのは命令で,自由に指定できます.

with open(path, mode='a'as f:
    f.write(type(f))

たとえば,上記のようにfの形式を書きこむのではなく,表示したい場合は以下のようにprint() とします.

    print(type(f))



2021年1月1日金曜日

カレントディレクトリ

 Pythonのカレントディレクトリに関するメモです.

Pythonでカレントディレクトリを確認するにはREPLで以下のようにします.カレントディレクトリは os.getcwd() 関数で文字列として取得でき,os.chdir() 関数で変更できます.なお,cwd は Current Working Directory の頭文字を取ったものです.また,os.getcwd() 関数はディレクトリ変更の関数です.

>>> import os

>>> os.getcwd()

'/Users/hide'

>>> os.chdir('/Users/User name/Desktop')

>>> os.getcwd()

'/Users/User name/Desktop'

>>> 


存在しないディレクトリに変更しようとすると,以下のようにエラーが返ってきます.

>>> os.chdir('/Users/User name/Desktop/xxx')

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

FileNotFoundError: [Errno 2] No such file or directory: '/Users/User name/Desktop/xxx'

>>>