トップPython入門 > ファイル操作

ファイル操作

テキストファイルを一行毎に読み込む

#!/usr/bin/env python

f = open('test.txt')
line = f.readline() # 1行を文字列として読み込む(改行文字も含まれる)
 
while line:
    print line
    line = f.readline()
f.close

テキストファイル全体を読み込む

#!/usr/bin/env python

f = open('test.txt')
data = f.read()  # ファイル終端まで全て読んだデータを返す
f.close()
 
lines = data.split('\n') # 改行で区切る(改行文字そのものは戻り値のデータには含まれない)
for line in lines:
    print line

ファイル、ディレクトリの存在をチェックする

ファイルの存在は パス名を引数としてos.path.isfile関数を使う。 下に使用例を示す。

# -*- coding: shift_jis -*-
import os

if __name__ == '__main__':
  path = "c:\\gis\\test.cs"
  if os.path.isfile(path):
    print path + "は存在します"
  else:
   print path + "は存在しません"

ディレクトリの存在チェックは os.path.isdir関数を使う。ディレクトリは os.mkdir関数を使う。

  if not os.path.isdir(dir01):
    os.mkdir(dir01)

ファイル情報(更新時刻、サイズなど)を得る

ファイル情報(更新時刻、サイズなど)を得るには os モジュールの stat を使用する。

プログラム例 file02.py を下に示す。

# -*- coding: shift_jis -*-
import os, datetime

if __name__ == '__main__':
  stat = os.stat("c:\\mh\\www\\python\\src\\file02.py")
  dt = datetime.datetime.fromtimestamp(stat.st_mtime)
  print "更新日時: ", dt
  print "サイズ: ", stat.st_size

実行結果を以下に示す。

c:\sys>python \mh\www\python\src\file02.py
更新日時:  2016-05-19 09:50:28.902565
サイズ:  252

ファイル名、ディレクトリ名を変更する

osモジュールのrenameメソッドを利用すると、ファイル名、ディレクトリ名を変更できる。 構文は、以下の通り。

  os.rename(oldname, newname)

ファイル、ディレクトリを削除する

ファイルの削除は osモジュールの removeメソッド、 ディレクトリの削除は osモジュールの rmdirメソッドを使用する。

  os.remove(path2)
  os.rmdir(path2)

ファイルの内容を比較する

ファイルの内容を比較するには filecmp モジュールの cmp 関数を使う。 内容が一致すれば True、そうでなければ False を返す。

  filecmp.cmp(file1,file2)

リファレンス

[1] Python: テキストファイルの読み込み read()、readlines()、readline()メソッド
[2] Pythonでファイルの最終更新時間を取得する方法