python3.doc_13
R e i - D r e a m
for Laravel
TOP > Python3 > Python基本(ファイル操作)
Guest
login

最終投稿日:2022年6月18日

Python基本(ファイル操作)
ファイル操作の基本
f = open('hoge.txt')                      ※ファイルを開く
    キーワード引数[encoding]で文字コードの指定ができます([sjis][euc-jp][utf-8]等)
    キーワード引数[newline]で改行コードの指定ができます([\n]等)
f.read( n )                                         ※読み込む文字数を指定できる。(省略した場合は全文を返却する)
f.close()                                             ※ファイルを閉じる
f.seek( n )                                         ※ファイルポインタを操作する( n=0 で最初に戻る)
    ※n はバイト単位なので注意! utf-8 だと 0 の次は 3 となります。
for l in f.readlines():
    print(l)                                          ※1行単位で読み込む
print(f.read())                                ※全文読み込む(これを for で回すと1文字単位で取得する事も可能)
    ※f.read().encode('cp932')                                          ※必要であれば文字コードを変換できる(windows の文字コード)
● コンテキストブロックを利用する
[with]ブロックを利用するとブロックの終わりやエラーの際は勝手に close されます。
例)
with open('hoge.text') as f:
    f.read()
    ~ 色々処理 ~
● openメソッドのモード
第2引数でモードを指定できます。
r                                          ファイルの読み込み ※デフォルト
w                                        ファイルへの上書き/指定したファイルがない場合は新規作成
a                                          指定したファイルの末尾に追記する
rb                                       ファイルの読み込み(バイナリファイル)
wb                                      ファイルへの上書き/指定したファイルがない場合は新規作成(バイナリファイル)
wa                                      指定したファイルの末尾に追記する(バイナリファイル)
    ※テキストファイルを扱う場合は本来 rt wt at とするが省略できる
● 文字の追加
例)
with open('/home/guest/python15h/chapter01/hoge.text','a') as f:
    f.write('\nついか')
    ※ファイル[hoge.tet]は、改行され「ついか」と表示されている
● ファイルを1行単位で確認する
そもそも open メソッドで返却された変数はファイルの内容を1行単位で返却するイテレータとなっている
例)
with open('/home/guest/python15h/chapter01/hoge.text','r') as f:
    for l in f:
        print(l)                                          ※1行単位で表示される
● ユーザー入力
標準入力より値を受け取る
例)
    a = input('入力してください:')
    print( a )
ディレクトリ操作
os モジュールをインポートすると便利なメソッドが使える
os.listdir( パス)                                ※パスに存在する[ファイル名][ディレクトリ名]をリスト型で返却する
例)
import os
mydir = os.listdir('/home/guest/python15h')
                                                   ※[~/python15h]にあるファイル名、ディレクトリ名をリスト型で受け取る
if 'chapter01' in mydir:    ※[chapter01]が存在するか確認
    print('OK')
else:
    print('NG')
os.mkdir( 'hoge' )                      ※カレントディレクトリに[hoge]ディレクトリを作成する
os.mkdir( 'hoge/foo/bar' )     ※カレントディレクトリから[./hoge/foo]に[bar]ディレクトリを作成する
※[hoge][foo]ディレクトリが存在しない場合はエラーとなる
os.makedirs( 'hoge/foo/bar' )
           ※カレントディレクトリから[./hoge/foo]に[bar]ディレクトリを作成するが、[hoge][foo]ディレクトリが存在しない場合は作成する。
os.walk( パス )
           ※パス以下の[検索ディレクトリ名][見つかったディレクトリ名のリスト][見つかったファイル名のリスト]を返却するイテレータを返却する
例)
import os
for myRoot,myDir,myFile in os.walk('/home/guest/python15h'):
                     ※[python15h]ディレクトリ以下を再帰的に検索できる
    if 'hoge.txt' in myFile:                                          ※[hoge.txt]がリスト型で受けた[myFile]に存在した場合は
        print('hoge.txtは')
        print('パス:[' + myRoot + ']にいます')        ※文字列で受けた[myRoot]を表示する
    break
パスの操作
os モジュールをインポートすると便利なメソッドが使える
例)
os.path.dirname(os.path.abspath(__file__))      ※実行ファイルのフルパスを取得(ファイル名を除く)

os.path.join( 'hoge', 'foo', 'bar' )                               ※パスを作成する(OSの違いによる表記を吸収できる)
                                                                                                      Linux の場合は[hoge/foo/bar]が返却される
os.path.split( 'hoge/foo/bar' )                                    ※最後の区切り文字から分割し、タプル型で返却する。
                                                                                                      ('hoge/foo', 'bar')が返却される
os.path.split( 'hoge/foo/bar/' )                                   ※最後の区切り文字から分割し、タプル型で返却する。
                                                                                                       ('hoge/foo/bar', '')が返却される
os.path.dirname( 'hoge/foo/bar/hoge.txt' )          ※[hoge.txt]のいるディレクトリのパスを文字列で返却する。
                                                                                                    「hoge/foo/bar」が返却される
os.path.basename( 'hoge/foo/bar/hoge.txt' )       ※パス上にある最終的な[ディレクトリ名]や[ファイル名]を文字列で返却する。
                                                                                                    「hoge.txt」が返却される
os.path.abspath(__file__)                                              ※実行ファイルのフルパスを取得(ファイル名含む)
きっぷる
ログインしてコメントを残そう!!


レンズモード 【新規購入限定用】
きっぷる