Python - ファイル I/O
前のページ次のページ
この章では、Python で使用できるすべての基本的な 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
- 入力
raw_input 機能
raw_input([prompt]) 関数は標準入力から 1 行を読み取り、それを文字列として返します (末尾の改行を削除します)。
#!/usr/bin/python str = raw_input("Enter your input: ") print "Received input is : ", str
これにより、任意の文字列を入力するように求められ、同じ文字列が画面に表示されます。 「Hello Python!」と入力すると、出力は次のようになります −
Enter your input: Hello Python Received input is : Hello Python
入力 機能
input([prompt]) function は raw_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 は、ファイルを操作するために必要な基本的な関数とメソッドをデフォルトで提供します。 ファイルを使用して、ほとんどのファイル操作を行うことができます オブジェクト。
オープン 機能
ファイルを読み書きする前に、Python の組み込みの open() を使用してファイルを開く必要があります。 関数。この関数はファイルを作成します オブジェクトに関連付けられた他のサポート メソッドを呼び出すために使用されます。
構文
file object = open(file_name [, access_mode][, buffering])
ここにパラメータの詳細があります-
-
ファイル名 − file_name 引数は、アクセスするファイルの名前を含む文字列値です。
-
アクセスモード - access_mode は、ファイルを開く必要があるモード、つまり、読み取り、書き込み、追加などを決定します。可能な値の完全なリストは、下の表に示されています。これはオプションのパラメータで、デフォルトのファイル アクセス モードは読み取り (r) です。
-
バッファリング − バッファリング値が 0 に設定されている場合、バッファリングは行われません。 buffering 値が 1 の場合、ファイルへのアクセス中に行バッファリングが実行されます。バッファリング値を 1 より大きい整数として指定すると、指定されたバッファ サイズでバッファリング アクションが実行されます。負の場合、バッファー サイズはシステムの既定値です (既定の動作)。
以下は、ファイルを開くさまざまなモードのリストです −
Sr.No. | モードと説明 |
---|---|
1 | えー ファイルを読み取り専用で開きます。ファイル ポインタは、ファイルの先頭に置かれます。これがデフォルトのモードです。 |
2 | rb バイナリ形式で読み取り専用のファイルを開きます。ファイル ポインタは、ファイルの先頭に置かれます。これがデフォルトのモードです。 |
3 | r+ 読み取りと書き込みの両方のためにファイルを開きます。ファイルの先頭に配置されたファイル ポインター。 |
4 | rb+ バイナリ形式で読み取りと書き込みの両方のためにファイルを開きます。ファイルの先頭に配置されたファイル ポインター。 |
5 | う ファイルを書き込み専用に開きます。ファイルが存在する場合、ファイルを上書きします。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。 |
6 | wb バイナリ形式でのみ書き込み用にファイルを開きます。ファイルが存在する場合、ファイルを上書きします。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。 |
7 | w+ 書き込みと読み取りの両方のためにファイルを開きます。ファイルが存在する場合、既存のファイルを上書きします。ファイルが存在しない場合は、読み書き用に新しいファイルを作成します。 |
8 | wb+ バイナリ形式で書き込みと読み取りの両方のためにファイルを開きます。ファイルが存在する場合、既存のファイルを上書きします。ファイルが存在しない場合は、読み書き用に新しいファイルを作成します。 |
9 | a 追加するファイルを開きます。ファイルが存在する場合、ファイル ポインタはファイルの末尾にあります。つまり、ファイルは追加モードです。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。 |
10 | ab 追加するファイルをバイナリ形式で開きます。ファイルが存在する場合、ファイル ポインタはファイルの末尾にあります。つまり、ファイルは追加モードです。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。 |
11 | a+ 追加と読み取りの両方のためにファイルを開きます。ファイルが存在する場合、ファイル ポインタはファイルの末尾にあります。ファイルが追加モードで開きます。ファイルが存在しない場合は、読み書き用に新しいファイルを作成します。 |
12 | ab+ バイナリ形式での追加と読み取りの両方のためにファイルを開きます。ファイルが存在する場合、ファイル ポインタはファイルの末尾にあります。ファイルが追加モードで開きます。ファイルが存在しない場合は、読み書き用に新しいファイルを作成します。 |
ファイル オブジェクト属性
ファイルが開かれ、ファイルが 1 つになると、 そのファイルに関連するさまざまな情報を取得できます。
これは、ファイル オブジェクトに関連するすべての属性のリストです −
Sr.No. | 属性と説明 |
---|---|
1 | file.closed ファイルが閉じている場合は true、そうでない場合は false を返します。 |
2 | ファイルモード ファイルが開かれたアクセス モードを返します。 |
3 | ファイル名 ファイルの名前を返します。 |
4 | file.softspace print でスペースが明示的に必要な場合は false を返し、それ以外の場合は true を返します。 |
例
ライブデモ#!/usr/bin/python # Open a file 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() 方法
ファイルの close() メソッド オブジェクトは、書き込まれていない情報をフラッシュし、ファイル オブジェクトを閉じます。その後、それ以上書き込みを行うことはできません。
ファイルの参照オブジェクトが別のファイルに再割り当てされると、Python はファイルを自動的に閉じます。 close() メソッドを使用してファイルを閉じることをお勧めします。
構文
fileObject.close()
例
ライブデモ#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name # Close opend file fo.close()
これにより、次の結果が生成されます-
Name of the file: foo.txt
ファイルの読み取りと書き込み
ファイル オブジェクトは、私たちの生活を楽にする一連のアクセス メソッドを提供します。 read() の使い方を見てみましょう および write() ファイルを読み書きするメソッド
write() 方法
write() メソッドは、開いているファイルに任意の文字列を書き込みます。 Python 文字列には、テキストだけでなくバイナリ データを含めることができることに注意してください。
write() メソッドは、文字列の末尾に改行文字 ('\n') を追加しません −
構文
fileObject.write(string)
ここで、渡されたパラメータは、開かれたファイルに書き込まれる内容です。
例
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close()
上記のメソッドは foo.txt を作成します ファイルに指定されたコンテンツを書き込み、最後にそのファイルを閉じます。このファイルを開くと、次の内容が含まれます。
Python is a great language. Yeah its great!!
read() 方法
read() メソッドは、開いているファイルから文字列を読み取ります。 Python 文字列はバイナリ データを持つことができることに注意することが重要です。テキストデータとは別に。
構文
fileObject.read([count])
ここで、渡されたパラメータは、開いたファイルから読み取るバイト数です。このメソッドは、ファイルの先頭から読み取りを開始し、count の場合
例
ファイル foo.txt を見てみましょう 、上で作成しました。
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10); print "Read String is : ", str # Close opend file fo.close()
これにより、次の結果が生成されます-
Read String is : Python is
ファイルの位置
tell() メソッドは、ファイル内の現在の位置を示します。つまり、次の読み取りまたは書き込みは、ファイルの先頭からそのバイト数で発生します。
seek(offset[, from]) メソッドは現在のファイル位置を変更します。 オフセット 引数は、移動するバイト数を示します。 から 引数は、バイトが移動される参照位置を指定します。
もしから 0 に設定すると、ファイルの先頭を参照位置として使用することを意味し、1 は現在の位置を参照位置として使用することを意味し、2 に設定するとファイルの末尾を参照位置として使用します。 /P>
例
ファイル foo.txt を取りましょう 、上で作成しました。
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10) print "Read String is : ", str # Check current position position = fo.tell() print "Current file position : ", position # Reposition pointer at the beginning once again position = fo.seek(0, 0); str = fo.read(10) print "Again read String is : ", str # Close opend file 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)
例
以下は、既存のファイル test1.txt の名前を変更する例です。 −
#!/usr/bin/python import os # Rename a file from test1.txt to test2.txt os.rename( "test1.txt", "test2.txt" )
remove() 方法
remove() を使用できます 削除するファイルの名前を引数として指定してファイルを削除するメソッド。
構文
os.remove(file_name)
例
以下は、既存のファイル test2.txt を削除する例です。 −
#!/usr/bin/python import os # Delete file test2.txt os.remove("text2.txt")
Python のディレクトリ
すべてのファイルはさまざまなディレクトリに含まれており、Python はこれらを問題なく処理できます。 OS モジュールには、ディレクトリの作成、削除、および変更に役立ついくつかのメソッドがあります。
mkdir() 方法
mkdir() を使用できます OS のメソッド モジュールを使用して、現在のディレクトリにディレクトリを作成します。このメソッドには、作成するディレクトリの名前を含む引数を指定する必要があります。
構文
os.mkdir("newdir")
例
以下は、ディレクトリ test を作成する例です 現在のディレクトリに −
#!/usr/bin/python import os # Create a directory "test" os.mkdir("test")
chdir() 方法
chdir() を使用できます カレントディレクトリを変更するメソッド。 chdir() メソッドは引数を取ります。これは、現在のディレクトリにするディレクトリの名前です。
構文
os.chdir("newdir")
例
以下は、「/home/newdir」ディレクトリに移動する例です −
#!/usr/bin/python import os # Changing a directory to "/home/newdir" os.chdir("/home/newdir")
getcwd() 方法
getcwd() メソッドは現在の作業ディレクトリを表示します。
構文
os.getcwd()
例
以下は、現在のディレクトリを与える例です-
#!/usr/bin/python import os # This would give location of the current directory os.getcwd()
rmdir() 方法
rmdir() メソッドは、メソッドで引数として渡されるディレクトリを削除します。
ディレクトリを削除する前に、ディレクトリ内のすべてのコンテンツを削除する必要があります。
構文
os.rmdir('dirname')
例
以下は「/tmp/test」ディレクトリを削除する例です。ディレクトリの完全修飾名を指定する必要があります。指定しないと、現在のディレクトリでそのディレクトリが検索されます。
#!/usr/bin/python import os # This would remove "/tmp/test" directory. os.rmdir( "/tmp/test" )
ファイルとディレクトリ関連のメソッド
Windows および Unix オペレーティング システムでファイルとディレクトリを処理および操作するための幅広いユーティリティ メソッドを提供する 3 つの重要なソースがあります。それらは次のとおりです-
-
ファイル オブジェクト メソッド:ファイル オブジェクトは、ファイルを操作する関数を提供します。
-
OS オブジェクト メソッド:これは、ファイルとディレクトリを処理するためのメソッドを提供します。
Python