Python3-ファイルI / O

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

画面への印刷

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

#!/usr/bin/python3

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

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

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

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

Python 2には、標準入力からデータを読み取るための2つの組み込み関数があります。これは、デフォルトではキーボードからのものです。これらの機能はinput() そして raw_input()

Python 3では、raw_input()関数は非推奨になりました。さらに、input()関数は、引用符( ''または "")で囲まれているかどうかに関係なく、キーボードからデータを文字列として読み取ります。

入力関数

ザ・ input([prompt]) 関数は、入力が有効なPython式であると想定し、評価された結果を返すことを除いて、raw_inputと同等です。

#!/usr/bin/python3

>>> x = input("something:")
something:10

>>> x
'10'

>>> x = input("something:")
something:'10' #entered data treated as string with or without ''

>>> x
"'10'"

ファイルを開いたり閉じたりする

これまで、標準入力と標準出力への読み取りと書き込みを行ってきました。次に、実際のデータファイルの使用方法を説明します。

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

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

Note −softspace属性はPython3.xではサポートされていません

#!/usr/bin/python3

# 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)
fo.close()

これにより、次の結果が生成されます-

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb

close()メソッド

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

Pythonは、ファイルの参照オブジェクトが別のファイルに再割り当てされると、ファイルを自動的に閉じます。close()メソッドを使用してファイルを閉じることをお勧めします。

構文

fileObject.close();

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)

# Close opened file
fo.close()

これにより、次の結果が生成されます-

Name of the file:  foo.txt

ファイルの読み取りと書き込み

ファイルオブジェクトは、私たちの生活を楽にするための一連のアクセスメソッドを提供します。使い方がわかりますread() そして write() ファイルを読み書きするメソッド。

write()メソッド

ザ・ write()メソッドは、開いているファイルに任意の文字列を書き込みます。Python文字列には、テキストだけでなくバイナリデータも含めることができることに注意してください。

write()メソッドは、文字列の末尾に改行文字( '\ n')を追加しません-

構文

fileObject.write(string);

ここで、渡されるパラメータは、開かれたファイルに書き込まれるコンテンツです。

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "w")
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]);

ここで、渡されるパラメーターは、開かれたファイルから読み取られるバイト数です。このメソッドは、ファイルの先頭から読み取りを開始し、カウントが欠落している場合は、ファイルの終わりまで、可能な限り多くの読み取りを試みます。

上で作成したfoo.txtファイルを取り上げましょう。

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)

# Close opened file
fo.close()

これにより、次の結果が生成されます-

Read String is :  Python is

ファイルの位置

TELL()メソッドを使用すると、ファイル内の現在位置を伝えます。つまり、次の読み取りまたは書き込みは、ファイルの先頭からそのバイト数で発生します。

シーク(オフセット[、から])メソッドは、現在のファイル位置を変更します。ザ・offset引数は、移動するバイト数を示します。ザ・from 引数は、バイトの移動先の参照位置を指定します。

fromが0に設定されている場合、ファイルの先頭が参照位置として使用されます。1に設定すると、現在位置が基準位置として使用されます。2に設定されている場合、ファイルの終わりが参照位置として使用されます。

上で作成したfoo.txtファイルを取り上げましょう。

#!/usr/bin/python3

# 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 opened 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/python3
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/python3
import os

# Delete file test2.txt
os.remove("text2.txt")

Pythonのディレクトリ

すべてのファイルはさまざまなディレクトリに含まれており、Pythonでもこれらの処理に問題はありません。ザ・os モジュールには、ディレクトリの作成、削除、および変更に役立ついくつかのメソッドがあります。

mkdir()メソッド

あなたは使用することができます mkdir() の方法 os現在のディレクトリにディレクトリを作成するモジュール。このメソッドには、作成するディレクトリの名前を含む引数を指定する必要があります。

構文

os.mkdir("newdir")

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

#!/usr/bin/python3
import os

# Create a directory "test"
os.mkdir("test")

chdir()メソッド

chdir()メソッドを使用して、現在のディレクトリを変更できます。chdir()メソッドは引数を取ります。これは、現在のディレクトリにするディレクトリの名前です。

構文

os.chdir("newdir")

以下は、「/ home / newdir」ディレクトリに移動する例です-

#!/usr/bin/python3
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

getcwd()メソッド

ザ・ getcwd() メソッドは、現在の作業ディレクトリを表示します。

構文

os.getcwd()

以下は、現在のディレクトリを指定する例です-

#!/usr/bin/python3
import os

# This would give location of the current directory
os.getcwd()

rmdir()メソッド

ザ・ rmdir() メソッドは、メソッドの引数として渡されるディレクトリを削除します。

ディレクトリを削除する前に、その中のすべての内容を削除する必要があります。

構文

os.rmdir('dirname')

以下は、「/ tmp / test」ディレクトリを削除する例です。ディレクトリの完全修飾名を指定する必要があります。そうしないと、現在のディレクトリでそのディレクトリが検索されます。

#!/usr/bin/python3
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

ファイルとディレクトリに関連するメソッド

WindowsおよびUnixオペレーティングシステムでファイルとディレクトリを処理および操作するための幅広いユーティリティメソッドを提供する3つの重要なソースがあります。それらは次のとおりです-

  • ファイルオブジェクトメソッド

    ザ・ file オブジェクトは、ファイルを操作するための関数を提供します。

  • OSオブジェクトメソッド

    これは、ディレクトリだけでなくファイルも処理するためのメソッドを提供します。