目次
個人的には、Python でファイルを処理するのは比較的簡単です。多くのオブジェクトを作成し、多くのメソッドを呼び出す必要がある Java とは異なり、Python は 1 つのメソッドのみを使用してファイルを処理するため、非常に強力です。
ファイルを開く方法
Python の組み込み関数 open を呼び出して、対応するファイルを開きます。
-
パラメータは、ファイル アドレス、ファイルへのアクセス許可、エンコード タイプの 3 つです。
open(file,mode,encoding)
-
mode パラメータには 3 つの値があります。r、w、a はそれぞれ、読み取り専用、書き込み、追加、追加モードを指します。
-
注意すべき主な点は、w モードでは、ファイルにデータを書き込むときに、ファイル内のデータが最初にクリアされるということです。
-
また、r モードでは、入力ファイルが存在しない場合、入力ファイルを作成せずに直接エラーを報告しますが、w モードでは、ファイルが存在しない場合、空のファイルを作成することにも注意してください。
-
-
戻り値のタイプ。ファイルに対応するオブジェクトを返します。これを通じてファイルを操作できます。
-
一般的な方法:
-
read(num); 指定されたバイト長のデータを読み込み、ポインタを移動します。
-
readline(); ファイル内のデータ行を読み取ると、ポインタが後方に移動します。for ループを使用して複数回アクセスできます。
-
readlines(); ファイル内のすべての行データを読み取ります。
-
ファイルを開くには、 open () as f とともに使用します。このメソッドの特別な特徴は、ファイル オブジェクトを受け入れるようにオブジェクトを設定する必要がないことです。ファイル オブジェクトを f に直接割り当てます。これを使用するときは、 f を直接使用してメソッドを呼び出します。
一般的なアクセス モードとその説明
r | ファイルを読み取り専用で開きます。ファイル ポインタはファイルの先頭に配置されます。これがデフォルトのモードです。 |
w | 書き込み専用のファイルを開きます。ファイルがすでに存在する場合は上書きします。ファイルが存在しない場合は、新しいファイルを作成します。 |
ある | 追加するファイルを開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。つまり、新しいコンテンツは既存のコンテンツの後に書き込まれます。ファイルが存在しない場合は、書き込み用に新しいファイルが作成されます。 |
もちろん、次のものを組み合わせて使用することもできます。
RB | ファイルを読み取り専用としてバイナリ形式で開きます。ファイル ポインタはファイルの先頭に配置されます。これがデフォルトのモードです。 |
wb | 書き込み専用としてバイナリ形式でファイルを開きます。ファイルがすでに存在する場合は上書きします。ファイルが存在しない場合は、新しいファイルを作成します。 |
腹筋 | 追加するためにバイナリ形式でファイルを開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。つまり、新しいコンテンツは既存のコンテンツの後に書き込まれます。ファイルが存在しない場合は、書き込み用に新しいファイルが作成されます。 |
ファイルオブジェクトを閉じるためのメソッド close()
ファイル オブジェクトを生成すると、現在のオブジェクトがファイルを占有しますが、リソースが解放されない場合は、常にそのオブジェクトがリソースを占有します。
Python の close() メソッドは Java とは異なり、Python の close() メソッドの関数には、バッファを更新する flash() 関数も含まれています。
Pythonでファイルにデータを書き込む場合、Javaとは異なり、直接バッファ関数を使った書き込み方法を使用します。
ファイルの読み取りと書き込み
データの書き込み (write)
完了後に write() を使用してデータをファイルに書き込みます
f = open("test.txt","w") #打开文件,w模式(写模式),文件不存在就新建
f.write("hello world,I am here!") #将字符串写入文件中
f.close() #关闭文件
データの読み取り (読み取り)
ファイルからデータを読み取るには、read(num) を使用します。num は、ファイルから読み取るデータの長さ (バイト単位) を示します。num が渡されない場合は、ファイル内のすべてのデータを読み取ることを意味します。
#读:read方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
f = open("test.txt","r")
content = f.read(5) #一次读五个字符
print(content)
print('-'*30)
content = f.read()
print(content)
f.close()
データの読み取り (読み取りライン)
read にパラメーターがない場合と同様に、readlines はファイル全体の内容を一度に 1 行ずつ読み取り、各行のデータが要素であるリストを返すことができます。
f = open("test.txt","r")
content = f.readlines() # 一次性读取全部文件为列表,每行一个字符串
print(content) #['hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n',
i = 1
for temp in content:
print("%d:%s"%(i,temp))
i += 1
f.close()
データの読み取り (readline)
readline は一度に 1 行を読み取ります
f = open("test.txt","r")
content = f.readline() #1:hello world,I am here!--1
print("1:%s"%content)
content = f.readline() #2:hello world,I am here!--2
print("2:%s"%content)
f.close()