Python-ファイルI / O

この章では、Pythonで使用できるすべての基本的なI / O関数について説明します。その他の関数については、標準のPythonドキュメントを参照してください。

画面への印刷

出力を生成する最も簡単な方法は、コンマで区切られた0個以上の式を渡すことができるprintステートメントを使用することです。この関数は、渡した式を文字列に変換し、その結果を次のように標準出力に書き込みます。

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"

これにより、標準画面で次の結果が生成されます-

Python is really a great language, isn't it?

キーボード入力の読み取り

Pythonには、標準入力からテキスト行を読み取るための2つの組み込み関数が用意されています。これは、デフォルトではキーボードからのものです。これらの関数は次のとおりです。

  • raw_input
  • input

raw_input機能

raw_inputは([プロンプト])関数は、文字列(末尾の改行を除去する)などの標準的な入力及び戻りから1行を読み出します。

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

これにより、任意の文字列を入力するように求められ、画面に同じ文字列が表示されます。「HelloPython!」と入力すると、出力は次のようになります。

Enter your input: Hello Python
Received input is :  Hello Python

入力機能

入力([プロンプト])機能、入力が有効なPython式であると仮定して、あなたに評価した結果を返すことを除いて、raw_inputと同等です。

#!/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 オブジェクト。

オープン機能

ファイルを読み書きする前に、Pythonの組み込みopen()関数を使用してファイルを開く必要があります。この関数は、file オブジェクト。これは、それに関連付けられた他のサポートメソッドを呼び出すために使用されます。

構文

file object = open(file_name [, access_mode][, buffering])

パラメータの詳細は次のとおりです-

  • file_name − file_name引数は、アクセスするファイルの名前を含む文字列値です。

  • access_mode− access_modeは、ファイルを開く必要のあるモード(読み取り、書き込み、追加など)を決定します。可能な値の完全なリストを以下の表に示します。これはオプションのパラメーターであり、デフォルトのファイルアクセスモードが読み取られます(r)。

  • buffering−バッファリング値が0に設定されている場合、バッファリングは行われません。バッファリング値が1の場合、ファイルへのアクセス中に行バッファリングが実行されます。バッファリング値を1より大きい整数として指定すると、指定されたバッファサイズでバッファリングアクションが実行されます。負の場合、バッファサイズはシステムのデフォルト(デフォルトの動作)です。

これがファイルを開くさまざまなモードのリストです-

シニア番号 モードと説明
1

r

読み取り専用のファイルを開きます。ファイルポインタはファイルの先頭に配置されます。これがデフォルトのモードです。

2

rb

バイナリ形式でのみ読み取るためにファイルを開きます。ファイルポインタはファイルの先頭に配置されます。これがデフォルトのモードです。

3

r+

読み取りと書き込みの両方のためにファイルを開きます。ファイルの先頭に配置されたファイルポインタ。

4

rb+

バイナリ形式で読み取りと書き込みの両方のファイルを開きます。ファイルの先頭に配置されたファイルポインタ。

5

w

書き込み専用のファイルを開きます。ファイルが存在する場合、ファイルを上書きします。ファイルが存在しない場合は、書き込み用の新しいファイルを作成します。

6

wb

バイナリ形式でのみ書き込むためのファイルを開きます。ファイルが存在する場合、ファイルを上書きします。ファイルが存在しない場合は、書き込み用の新しいファイルを作成します。

7

w+

書き込みと読み取りの両方のためにファイルを開きます。ファイルが存在する場合は、既存のファイルを上書きします。ファイルが存在しない場合は、読み取りおよび書き込み用の新しいファイルを作成します。

8

wb+

バイナリ形式での書き込みと読み取りの両方のためにファイルを開きます。ファイルが存在する場合は、既存のファイルを上書きします。ファイルが存在しない場合は、読み取りおよび書き込み用の新しいファイルを作成します。

9

a

追加するファイルを開きます。ファイルが存在する場合、ファイルポインタはファイルの最後にあります。つまり、ファイルは追加モードになっています。ファイルが存在しない場合は、書き込み用の新しいファイルが作成されます。

10

ab

バイナリ形式で追加するファイルを開きます。ファイルが存在する場合、ファイルポインタはファイルの最後にあります。つまり、ファイルは追加モードになっています。ファイルが存在しない場合は、書き込み用の新しいファイルが作成されます。

11

a+

追加と読み取りの両方のためにファイルを開きます。ファイルが存在する場合、ファイルポインタはファイルの最後にあります。ファイルは追加モードで開きます。ファイルが存在しない場合は、読み取りと書き込み用の新しいファイルが作成されます。

12

ab+

追加と読み取りの両方のためにバイナリ形式でファイルを開きます。ファイルが存在する場合、ファイルポインタはファイルの最後にあります。ファイルは追加モードで開きます。ファイルが存在しない場合は、読み取りと書き込み用の新しいファイルが作成されます。

ファイルオブジェクトの属性

ファイルを開いてファイルオブジェクトを1つ作成すると、そのファイルに関連するさまざまな情報を取得できます。

これはファイルオブジェクトに関連するすべての属性のリストです-

シニア番号 属性と説明
1

file.closed

ファイルが閉じている場合はtrueを返し、それ以外の場合はfalseを返します。

2

file.mode

ファイルを開いたときのアクセスモードを返します。

3

file.name

ファイルの名前を返します。

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()メソッドは、書き込まれていない情報をフラッシュしてファイルオブジェクトを閉じます。その後、書き込みを行うことはできなくなります。

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()書き込み()読み取りと書き込みのファイルする方法を。

書き込み()メソッド

書き込み()メソッドは、開いているファイルに任意の文字列を書き込みます。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!!

読み取り()メソッド

読み取り()メソッドは、開いているファイルから文字列を読み込みます。Python文字列はバイナリデータを持つことができることに注意することが重要です。テキストデータは別として。

構文

fileObject.read([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()メソッドを使用すると、ファイル内の現在位置を伝えます。つまり、次の読み取りまたは書き込みは、ファイルの先頭からそのバイト数で発生します。

シーク(オフセット[、から])メソッドは、現在のファイル位置を変更します。オフセット引数は、移動すべきバイト数を示します。以下からの引数は、バイトが移動される場所からの基準位置を特定します。

fromが0に設定されている場合は、ファイルの先頭を参照位置として使用し、1は現在の位置を参照位置として使用することを意味し、2に設定されている場合は、ファイルの末尾が参照位置として使用されます。 。

上で作成した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()メソッド

名前の変更()メソッドは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()メソッドを使用して、削除するファイルの名前を引数として指定することにより、ファイルを削除できます。

構文

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")

以下は、現在のディレクトリにディレクトリテストを作成する例です-

#!/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オブジェクトメソッド:これは、ディレクトリだけでなくファイルを処理するためのメソッドを提供します。