PythonファイルI/Oday 14


この章では、基本的なI/O関数についてのみ説明します.詳細はPython標準ドキュメントを参照してください.
画面に印刷
最も簡単な出力方法はprint文で、カンマで区切られた式を0つ以上渡すことができます.この関数は、渡された式を文字列式に変換し、結果を標準出力に書きます.
#!/usr/bin/python
 
print "Python is really a great language,", "isn't it?";

標準画面では、次の結果が得られます.
Python is really a great language, isn't it?

キーボード入力の読み込み
Pythonは、標準入力から1行のテキストを読み込む2つの内蔵関数を提供し、デフォルトの標準入力はキーボードです.次のようになります.
  • raw_input
  • input

  • raw_input関数
    raw_Input([prompt])関数は、標準入力から行を読み出し、文字列を返します(末尾の改行を削除します):
    #!/usr/bin/python
     
    str = raw_input("Enter your input: ");
    print "Received input is : ", str

    任意の文字列を入力し、画面に同じ文字列を表示するよう求められます.「ハローPython!」と入力すると、出力は次のとおりです.
    Enter your input: Hello Python
    Received input is :  Hello Python

    input関数
    input([prompt])関数とraw_Input([prompt])関数は基本的に交換できますが、inputは入力が有効なPython式であると仮定し、演算結果を返します.
    #!/usr/bin/python
     
    str = input("Enter your input: ");
    print "Received input is : ", str

    これにより、次のような入力に対応する結果が得られます.
    Enter your input: [x*5 for x in range(2,10,2)]
    Recieved input is :  [10, 20, 30, 40]

    ファイルを開く/閉じる
    これまで、標準入力と入力に読み書きを行うことができました.では、実際のデータファイルの読み書き方法を見てみましょう.
    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オブジェクトに関連するすべてのプロパティのリストを次に示します.
    ツールバーの
    説明
    file.closed
    trueを返します.ファイルが閉じられている場合はfalseを返します.
    file.mode
    開いているファイルのアクセスモードを返します.
    file.name
    ファイルの名前を返します.
    file.softspace
    printで出力した後、スペース記号を付ける必要がある場合はfalseを返します.そうでなければtrueを返します.
    次の例を示します.
    #!/usr/bin/python
     
    #       
    fo = open("foo.txt", "wb")
    print "Name of the file: ", fo.name
    print "Closed or not : ", fo.closed
    print "Opening mode : ", fo.mode
    print "Softspace flag : ", fo.softspace

    上記の例は、結果を出力します.
    Name of the file:  foo.txt
    Closed or not :  False
    Opening mode :  wb
    Softspace flag :  0

    Close()メソッド
    Fileオブジェクトのclose()メソッドは、バッファに書き込まれていない情報をリフレッシュし、ファイルを閉じます.その後、書き込みはできません.
    あるファイルオブジェクトの参照が別のファイルに再指定されると、Pythonは前のファイルを閉じます.close()メソッドでファイルを閉じるのは良い習慣です.
    構文:
    fileObject.close();

    例:
    #!/usr/bin/python
     
    #       
    fo = open("foo.txt", "wb")
    print "Name of the file: ", fo.name
     
    #        
    fo.close()

    上記の例は、結果を出力します.
    Name of the file:  foo.txt

    ファイルの読み書き:
    fileオブジェクトは、ファイルへのアクセスを容易にするための一連の方法を提供します.read()メソッドとwrite()メソッドを使用してファイルを読み取り、書き込む方法を見てみましょう.
    Write()メソッド
    Write()メソッドは、開いているファイルに任意の文字列を書き込むことができます.Python文字列は、文字だけでなくバイナリデータであってもよいことに注意してください.
    Write()メソッド文字列の最後に改行を追加しない('):
    構文:
    fileObject.write(string);

    ここで、渡されるパラメータは、開いているファイルに書き込む内容です.
    例:
    #!/usr/bin/python
     
    #       
    fo = open("/tmp/foo.txt", "wb")
    fo.write( "Python is a great language.
    Yeah its great!!
    ");   #  fo.close()

    上記の方法でfooが作成する.txtファイルは、受信した内容をファイルに書き込み、最終的にファイルを閉じます.このファイルを開くと、次の内容が表示されます.
    Python is a great language.
    Yeah its great!!

    read()メソッド
    read()メソッドは、開いているファイルから文字列を読み出します.Python文字列は、文字だけでなくバイナリデータであってもよいことに注意してください.
    構文:
    fileObject.read([count]);

    ここで、渡されるパラメータは、開いたファイルから読み出すバイト数である.この方法はファイルの先頭から読み込まれ、countが入力されていない場合は、ファイルの末尾までできるだけ多くのコンテンツを読み込もうとします.
    例:
    私たちが作成したファイルfooを使用します.txt.
    #!/usr/bin/python
     
    #       
    fo = open("/tmp/foo.txt", "r+")
    str = fo.read(10);
    print "Read String is : ", str
    #        
    fo.close()

    上記の例は、結果を出力します.
    Read String is :  Python is

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

    上記の例は、結果を出力します.
    Read String is :  Python is
    Current file position :  10
    Again read String is :  Python is

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

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

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

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

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

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

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

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

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

    例:
    次の例では、現在のディレクトリを示します.
    #!/usr/bin/python
    import os
     
    #        
    os.getcwd()

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

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

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