pythonラーニング9-ファイルの基本操作と高度な操作

6992 ワード

pythonラーニング9-ファイルの基本操作と高度な操作


1.ファイルの基本操作

  • ファイルを開き、ファイルハンドルを取得する:f=open('filename',encoding='utf-8')、openはオペレーティングシステムの符号化方式を照会し、この符号化方式に従ってファイルを読み取り、ファイルがutf-8符号化を使用する場合、指定符号化
  • を開く.
  • ハンドルによるファイル操作:data=f.read()
  • ファイルを閉じる:f.close()
  • 2.ファイル操作モード

  • r、読み取り専用モード、書き込み不可、f=open('filename','r',encoding='utf-8')
  • f.readable()ファイルが読めるかどうかを判断する
  • f.readline()は、ファイルの1行を読み取る、カーソルが移動するにつれて、各行
  • を順次読み出す.
    f = read('xxx')
    f.read()
    
    f.readline()  # , , 
  • f.readlines()すべてのローを読み出し、各ローを文字列として保存し、すべてのローをリスト
  • として保存する.
  • open()にはパラメータnewline,f=open('1.txt','r',newline=')が含まれており、pythonは自動的に異なるプラットフォームの改行記号をwindowsプラットフォーム上で改行記号をr
  • に変換します.
  • w、書き込みモードのみ、読み取り不可、f=open('filename','w',encoding='utf-8')で、ファイルに書き込まれる内容は文字列でなければなりません
  • ファイルが存在する場合、ファイルを空にして、その後の操作
  • を行う.
  • ファイルが存在しない場合は、
  • ファイルが新規作成されます.
  • f.write('contents')は、1行1行のコンテンツをファイルに書き込み、現在のカーソルの位置から
  • に書き込む.
  • f.writelines(list)は、リストに内容を書き、リストの各要素をファイルに書き換える
  • f.writeable()は、ファイルが
  • に書けるかどうかを判断する.
  • x、書き込みモードのみ、ファイルが存在しない場合はそのファイルを作成し、ファイルが存在する場合は
  • とエラーを報告する.
  • a,追加モード,f=open('filename','a',encoding='utf-8')
  • aモード自体が書き込みモードであり、ファイル
  • を追加で書き込むにすぎない.
  • r+,読み書きモード,f=open('filename','r+',encoding='utf-8')
  • w+,x+,a+,書き込み読み出しモード
  • rb,wb,xb,abは、バイトで読み書き、符号化
  • を指定できない.
    fr = open('TextFile1.txt','rb')
    print(fr.read().decode('gbk'))
    
    f = open('test22.py','wb')
    
    f.write(bytes('asdfghjkl
    ', encoding = 'utf8')) f.write(' '.encode('utf8'))

    注意:バイナリから文字列に変換してdecode()と表示し、文字列からバイナリに変換してencode()として格納します.
    ファイルを自動的に閉じる方法:
    with open('file','w') as f:
        f.write('asdf')
    
    with open('file1','w') as f1, open('file2','w') as f2
        f1.write('asdf')
        f2.write('ghjkl')

     3. ファイルの操作方法

  • f.closed、ファイルが
  • を閉じるかどうかを判断する
  • f.encoding、表示ファイルが開く符号化方式
  • f.flush()は、メモリ内のテキストをファイルにリフレッシュし、ファイル内容
  • を更新する.
  • f.name、ファイル名
  • f.tell()は、現在のカーソルの位置をバイトカウント
  • で表示する.
  • f.seek(0)は、カーソルを0位置に移動し、バイトカウント
  • に従って
  • f.read(4)は、文字カウントに従って4文字
  • を読み出す.
  • f.truncate(10)は、最初の10バイトを切り取り、元のファイルに書き込み、ソースファイル
  • を上書きする.

    4.ファイルの詳細操作

  • f.seek(,0)、0はカーソル位置が絶対位置
  • を採用することを示す.
  • f.seek(,1)は、ファイルをbモードで開くことを要求し、相対位置を採用し、
  • を累積する.
  • f.seek(,2)は、逆順でbモードで開き、ファイルの末尾からカーソル
  • を移動する.
  • ファイルを循環する推奨方法:以下の第1の方法はすべてのファイルの内容を読み出して、それから1行1行の循環;第2の方法は、1行1行のファイルの内容
  • を読み取るだけである.
    for i in f.readlines():
        print(i)
    
    # 
    for i in f:
        print(i)

    5.大ファイルの最後の行を読み込む


    重要なアイデア:ファイルの末尾から文字列を読み出す個数を増やすたびに、最後の行が完全に読み込まれるまで、インデックス[-1]で読み取りデータの最後の行を取り出します.
    for i in f:
        offs=-10
        while True:
            f.seek(offs, 2)
            data=f.readlines()
            if len(data)>1:
                print(' %s' %(data[-1]. decode('utf-8')))
                break
            offs*=2