[セットトップ]DayDayUP_Python独学記録[8]ファイルI/O

12686 ワード

PythonファイルI/O
この章では、基本的なI/O関数についてのみ説明します.詳細はPython標準ドキュメントを参照してください.画面に印刷する最も簡単な出力方法はprint文で、カンマで区切られた式を0つ以上渡すことができます.この関数は、渡された式を文字列式に変換し、結果を標準出力に書きます.
#!/usr/bin/python
# -*- coding: UTF-8 -*- 

print "Python          ,   ?";

キーボード入力の読み込み
Pythonは、標準入力から1行のテキストを読み込む2つの内蔵関数を提供し、デフォルトの標準入力はキーボードです.次のようになります.
  • raw_input
  • input
  • raw_input関数
  • raw_Input([prompt])関数は、標準入力から行を読み出し、文字列を返します(末尾の改行を削除します):
    #!/usr/bin/python
    # -*- coding: UTF-8 -*- 
    
    str = raw_input("   :");
    print "       : ", str
  • input関数
  • input([prompt])関数とraw_Input([prompt])関数は基本的に似ていますが、inputはPython式を入力として受信し、演算結果を返します.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*- 
    
    str = input("   :");
    print "       : ", str
    
    
                   :
       :[x*5 for x in range(2,10,2)]
           :  [10, 20, 30, 40]

    注記:range()関数
    >>> range(1,5) #   1 5(   5)
    [1, 2, 3, 4]
    >>> range(1,5,2) #   1 5,  2(   5)
    [1, 3]
    >>> range(5) #   0 5(   5)
    [0, 1, 2, 3, 4]

    ファイルを開く/閉じる
    標準入力と入力を読み書きできるようになりました.では、実際のデータファイルの読み書き方法を見てみましょう.Pythonは、デフォルトのファイルの基本操作に必要な関数と方法を提供します.fileオブジェクトでほとんどのファイル操作を行うことができます.
    Open関数
    Pythonに内蔵されたopen()関数を使用してファイルを開き、fileオブジェクトを作成する必要があります.関連する方法で読み取りと書き込みを呼び出すことができます.構文:
    file object = open(file_name [, access_mode][, buffering])
    

    各パラメータの詳細は次のとおりです:file_name:file_name変数は、アクセスするファイル名を含む文字列値です.access_mode:access_modeはファイルを開くモードを決定しました:読み取り専用、書き込み、追加など.すべての値は、次の完全なリストに表示されます.このパラメータは非強制であり、デフォルトのファイルアクセスモードは読み取り専用(r)である.buffering:bufferingの値が0に設定されていると、預けられません.bufferingの値が1の場合、ファイルへのアクセス時にローが格納されます.bufferingの値を1より大きい整数に設定すると、これがレジスタのバッファサイズであることが示されます.負の値をとると、ストレージ領域のバッファサイズがシステムのデフォルトになります.異なるモードでファイルの完全なリストを開きます.
          
    r            。              。      。
    rb                  。             。      。
    r+            。             。
    rb+                 。             。
    w              。             。        ,     。
    wb                   。             。        ,     。
    w+            。             。        ,     。
    wb+                 。             。        ,     。
    a             。        ,             。    ,                。        ,         。
    ab                  。        ,             。    ,                。        ,         。
    a+            。        ,             。           。        ,         。
    ab+                 。        ,             。        ,         。

    Fileオブジェクトのプロパティファイルが開くと、ファイルに関するさまざまな情報が得られます.fileオブジェクトに関連するすべてのプロパティのリストを次に示します.
          
    file.closed   truefalsefile.mode               。
    file.namefile.softspace     print   ,        ,   falsetrue

    次の例を示します.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    #       
    fo = open("foo.txt", "wb")
    print "   : ", fo.name
    print "      : ", fo.closed
    print "     : ", fo.mode
    print "          : ", fo.softspace

    close()メソッド
    Fileオブジェクトのclose()メソッドは、バッファに書き込まれていない情報をリフレッシュし、ファイルを閉じます.その後、書き込みはできません.あるファイルオブジェクトの参照が別のファイルに再指定されると、Pythonは前のファイルを閉じます.close()メソッドでファイルを閉じるのは良い習慣です.構文:fileObject.close();
    ファイルの読み書き:
    fileオブジェクトは、ファイルへのアクセスを容易にするための一連の方法を提供します.read()メソッドとwrite()メソッドを使用してファイルを読み取り、書き込む方法を見てみましょう.
    write()メソッド
    write()メソッドは、開いているファイルに任意の文字列を書き込むことができます.Python文字列は、文字だけでなくバイナリデータであってもよいことに注意してください.Write()メソッド文字列の末尾に改行記号('):構文:fileObject.write(string); ここで、渡されるパラメータは、開いているファイルに書き込む内容です.例:
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    #       
    fo = open("foo.txt", "wb")
    fo.write( "www.runoob.com!
    Very good site!
    "
    ); # fo.close()

    上記の方法でfooが作成する.txtファイルは、受信した内容をファイルに書き込み、最終的にファイルを閉じます.
    read()メソッド
    read()メソッドは、開いているファイルから文字列を読み出します.Python文字列は、文字だけでなくバイナリデータであってもよいことに注意してください.構文:fileObject.read([count]); ここで、渡されるパラメータは、開いたファイルから読み出すバイト数である.この方法はファイルの先頭から読み込まれ、countが入力されていない場合は、ファイルの末尾までできるだけ多くのコンテンツを読み込もうとします.例:以上で作成したfooを用いる.txtファイル.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    #       
    fo = open("foo.txt", "r+")
    str = fo.read(10);
    print "        : ", str
    #        
    fo.close()

    ファイルの場所:
    ファイルの配置
    tell()メソッドは、ファイル内の現在の位置を教えます.すなわち、次の読み書きは、ファイルの先頭にこんなに多くのバイトがある後に発生します.seek(offset[,from])メソッドは、現在のファイルの場所を変更します.Offset変数は移動するバイト数を表します.From変数は、バイトの移動を開始する参照位置を指定します.fromが0に設定されている場合、これはファイルの先頭を移動バイトの参照位置とすることを意味します.1に設定すると、現在の位置を参照位置として使用します.2に設定すると、ファイルの末尾が参照位置になります.例:私たちが作成したファイルfooを使用します.txt.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    #       
    fo = open("foo.txt", "r+")
    str = fo.read(10);
    print "        : ", str
    
    #       
    position = fo.tell();
    print "       : ", position
    
    #               
    position = fo.seek(0, 0);
    str = fo.read(10);
    print "        : ", str
    #        
    fo.close()

    ファイルの名前変更と削除
    Pythonのosモジュールは、ファイルの名前の変更や削除など、ファイル処理操作を実行する方法を提供します.このモジュールを使用するには、関連するさまざまな機能を呼び出す前にインポートする必要があります.rename()メソッド:rename()メソッドには、現在のファイル名と新しいファイル名の2つのパラメータが必要です.構文:
    os.rename(current_file_name, new_file_name)
    

    例:次の例では、既存のファイルtest 1の名前を変更します.txt.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os
    
    #      test1.txt test2.txt。
    os.rename( "test1.txt", "test2.txt" )

    remove()メソッド
    remove()メソッドでファイルを削除できます.パラメータとして削除するファイル名を指定する必要があります.構文:
    os.remove(file_name)
    

    例:次の例では、既存のファイルtest 2を削除します.txt.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os
    
    #            test2.txt
    os.remove("test2.txt")
    Python    :

    すべてのファイルはそれぞれのディレクトリに含まれていますが、Pythonも簡単に処理できます.osモジュールには、ディレクトリの作成、削除、変更を支援する方法がたくさんあります.
    mkdir()メソッド
    OSモジュールのmkdir()メソッドを使用して、現在のディレクトリの下に新しいディレクトリを作成できます.作成するディレクトリ名を含むパラメータを指定する必要があります.構文:
    os.mkdir("newdir")
    

    例:次の例では、現在のディレクトリの下に新しいディレクトリtestを作成します.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os
    
    #     test
    os.mkdir("test")

    chdir()メソッド
    現在のディレクトリはchdir()メソッドで変更できます.chdir()メソッドに必要なパラメータの1つは、現在のディレクトリに設定したいディレクトリ名です.構文:
    os.chdir("newdir")
    

    例:次の例では「/home/newdir」ディレクトリに入ります.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os
    
    #        "/home/newdir"
    os.chdir("/home/newdir")

    getcwd()メソッド:getcwd()メソッドは、現在の作業ディレクトリを表示します.構文:
    os.getcwd()
    

    rmdir()メソッド
    rmdir()メソッドはディレクトリを削除し、ディレクトリ名はパラメータで渡されます.このディレクトリを削除する前に、すべてのコンテンツを消去する必要があります.構文:
    os.rmdir('dirname')
    

    例:削除」/tmp/testディレクトリの例を次に示します.ディレクトリの完全なコンプライアンスの名前を指定する必要があります.そうしないと、現在のディレクトリの下でディレクトリが検索されます.
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os
    
    #   ”/tmp/test”  
    os.rmdir( "/tmp/test"  )

    ファイル、ディレクトリに関する3つの重要なメソッドソースは、WindowsおよびUnixオペレーティングシステム上のファイルおよびディレクトリに対して、以下のように広く実用的な処理および操作を行うことができます.
  • Fileオブジェクトメソッド:fileオブジェクトは、ファイルを操作する一連のメソッドを提供します.
  • OSオブジェクトメソッド:ファイルおよびディレクトリを処理する一連の方法が提供される.

  • Python Fileメソッド
    fileオブジェクトはopen関数を使用して作成されます.次の表に、fileオブジェクトでよく使用される関数を示します.
    シーケンス番号
    方法
    説明
    1
    file.close()
    ファイルを閉じます.閉じるとファイルの読み書きができなくなります
    2
    file.flush()
    ファイル内部バッファをリフレッシュし、出力バッファの書き込みを受動的に待つのではなく、内部バッファのデータをすぐにファイルに書き込む.
    3
    file.fileno()
    osモジュールのreadメソッドなどのいくつかの下位レベルの操作で使用できる整数ファイル記述子(file descriptor FD整数)を返します.
    4
    file.isatty()
    ファイルが端末装置に接続されている場合はTrueを返します.そうでない場合はFalseを返します.
    5
    file.next()
    ファイルの次の行に戻ります.
    6
    file.read([size])
    指定したバイト数をファイルから読み込み、指定されていないか負の場合はすべて読み込みます.
    7
    file.readline([size])
    「」文字を含む行全体を読み込みます.
    8
    file.readlines([sizehint])
    すべてのローを読み取り、リストを返します.sizeint>0が与えられた場合、合計がsizeintバイトのローが返されます.実際の読み取り値はsizhintよりも大きい場合があります.バッファを埋め込む必要があるためです.
    9
    file.seek(offset[, whence])
    ファイルの現在位置の設定
    10
    file.tell()
    ファイルの現在の場所を返します.
    11
    file.truncate([size])
    ファイルを切り取り、切り取ったバイトはsizeで指定され、デフォルトは現在のファイルの場所です.
    12
    file.write(str)
    ファイルに文字列を書き込み、値は返されません.
    13
    file.writelines(sequence)
    ファイルにシーケンス文字列のリストを書き込み、改行が必要な場合は各行の改行を自分で加えます.
    “`