logo

Python でのテキスト ファイルの読み取りと書き込み

Python には、ファイルの作成、書き込み、読み取りのための組み込み関数が用意されています。 Pythonでは通常のテキストファイルとバイナリファイル(0と1のバイナリ言語で書かれたもの)の2種類のファイルを扱うことができます。

  • テキスト ファイル: このタイプのファイルでは、テキストの各行は EOL (行末) と呼ばれる特殊文字で終了します。これは、デフォルトでは Python の改行文字 (「 」) です。
  • バイナリ ファイル: このタイプのファイルには行のターミネータがなく、データは機械が理解できるバイナリ言語に変換されて保存されます。

この記事では、テキスト ファイルのオープン、クローズ、データの読み取り、書き込みに焦点を当てます。ここで、入手方法も見ていきます パイソン テキストファイルに出力します。



ファイルアクセスモード

アクセス モードは、開かれたファイルで実行できる操作の種類を制御します。これは、ファイルを開いた後にそのファイルがどのように使用されるかを指します。これらのモードは、 ファイルハンドル ファイル内にあります。ファイル ハンドルはカーソルのようなもので、ファイル内のどこからデータを読み書きするかを定義し、テキスト ファイルで Python 出力を取得できます。

Python には 6 つのアクセス モードがあります。

  • 読み取り専用 ('r')
  • 読み取りおよび書き込み (「r+」)
  • 書き込み専用 (「w」)
  • 書き込みと読み取り (「w+」)
  • 追加のみ ('a')
  • 追加して読み取る ('a+')

読み取り専用 ('r') : テキスト ファイルを開いて読み取ります。ハンドルはファイルの先頭に配置されます。ファイルが存在しない場合は、I/O エラーが発生します。これは、ファイルが開かれるデフォルトのモードでもあります。



読み取りおよび書き込み (「r+」): ファイルを読み取りおよび書き込みのために開きます。ハンドルはファイルの先頭に配置されます。ファイルが存在しない場合は I/O エラーが発生します。

書き込み専用 (「w」) : 書き込み用にファイルを開きます。既存のファイルの場合、データは切り詰められ、上書きされます。ハンドルはファイルの先頭に配置されます。ファイルが存在しない場合はファイルを作成します。

書き込みと読み取り (「w+」) : ファイルを読み取りおよび書き込みのために開きます。既存のファイルの場合、データは切り詰められ、上書きされます。ハンドルはファイルの先頭に配置されます。



追加のみ ('a') : 書き込み用にファイルを開きます。ファイルが存在しない場合は作成されます。ハンドルはファイルの最後に配置されます。書き込まれるデータは、既存のデータの最後に挿入されます。

追加して読み取り ('a+') : ファイルを読み取りおよび書き込みのために開きます。ファイルが存在しない場合は作成されます。ハンドルはファイルの最後に配置されます。書き込まれるデータは、既存のデータの最後に挿入されます。

ファイルはどのようにして一次メモリにロードされるのでしょうか?

コンピュータには 2 種類のメモリがあります。つまり、プライマリ メモリとセカンダリ メモリです。あなたが保存したすべてのファイルはセカンダリ メモリ上にあるため、コンピュータの電源がオフになるとプライマリ メモリ内のデータはすべて削除されます。したがって、テキスト ファイルを変更する必要がある場合、または単に Python でテキスト ファイルを操作する必要がある場合は、そのファイルをプライマリ メモリにロードする必要があります。 Python は、プライマリ メモリまたはメイン メモリにロードされたファイルと対話します。 ファイルハンドラー (これは、オペレーティング システムが Python にアクセスして、メモリ内でファイルを検索し、見つかった場合はファイル ハンドラーを返し、そのファイルを操作できるようにすることで、開いたファイルと対話する方法です。)

Python でテキスト ファイルを開く

これは open() 関数を使用して行われます。この機能のためにモジュールをインポートする必要はありません。

File_object = open(r'File_Name','Access_Mode')>

ファイルは Python プログラム ファイルと同じディレクトリに存在する必要があります。そうでない場合は、ファイル名の代わりにファイルの完全なアドレスを書き込む必要があります。注: r ファイル名文字列内の文字が特殊文字として扱われないように、ファイル名の前に置かれます。たとえば、ファイル アドレスに emp がある場合、 はタブ文字として扱われ、アドレスが無効であるというエラーが発生します。 r は文字列を raw にします。つまり、文字列に特殊文字が含まれていないことを示します。ファイルが同じディレクトリ内にあり、アドレスが設定されていない場合、r は無視できます。

パイソン




ニーナ・グプタ

# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r>'D:TextMyFile2.txt'>,>'w+'>)>

>

>

ここでは、file1 が MyFile1 のオブジェクトとして作成され、file2 が MyFile2 のオブジェクトとして作成されます。

Python でテキスト ファイルを閉じる

close() 関数はファイルを閉じ、そのファイルによって獲得されたメモリ領域を解放します。ファイルが不要になった場合、または別のファイル モードで開く場合に使用されます。ファイルオブジェクト.close()

パイソン




# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()>

>

モニターの画面サイズを確認する方法

>

Python でファイルに書き込む

ファイルに書き込む方法は 2 つあります。

  • write() の使用
  • writelines() の使用

write() を使用した Python テキスト ファイルへの書き込み

書く() : 文字列 str1 をテキスト ファイルの 1 行に挿入します。

File_object.write(str1)>

writelines() を使用したテキスト ファイルへの書き込み

writelines() : 文字列要素のリストの場合、各文字列はテキスト ファイルに挿入されます。複数の文字列を一度に挿入するために使用されます。

File_object.writelines(L) for L = [str1, str2, str3]>

参照: write() VS writelines()

Python でのファイルからの読み取り

テキスト ファイルからデータを読み取るには 3 つの方法があります。

read() を使用したファイルからの読み取り

読む() : 読み取ったバイトを文字列の形式で返します。 n バイトを読み取ります。n が指定されていない場合は、ファイル全体を読み取ります。

File_object.read([n])>

readline() を使用したテキスト ファイルの読み取り

読み込まれた行() : ファイルの行を読み取り、文字列の形式で返します。指定された n について、最大 n バイトを読み取ります。ただし、n が行の長さを超えた場合でも、複数の行を読み取ることはありません。

File_object.readline([n])>

readlines() を使用したファイルの読み取り

readlines() : すべての行を読み取り、各行をリスト内の文字列要素として返します。

 File_object.readlines()>

注記: 「 」は 2 バイトの特殊文字として扱われます。

この例では、myfile.txt という名前のファイルが作成され、書き込みモードで開かれます ('w'>)。データは次を使用してファイルに書き込まれますwrite>そしてwritelines>メソッド。その後、ファイルは読み取りおよび追加モードで再度開かれます ('r+'>)。さまざまな読み取り操作を含むread>readline>readlines>、および使用seek>では、ファイルからデータを取得するさまざまな方法を示します。最後にファイルを閉じます。

Python3




# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> # is placed to indicate EOL (End of Line)> file1.write(>'Hello '>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()>

>

>

出力:

Output of Read function is  Hello  This is Delhi  This is Paris  This is London  Output of Readline function is  Hello  Output of Read(9) function is  Hello  Th Output of Readline(9) function is  Hello  Output of Readlines function is  ['Hello 
', 'This is Delhi 
', 'This is Paris 
', 'This is London 
']>

Python でファイルに追加する

この例では、myfile.txt という名前のファイルが最初は書き込みモードで開かれます ('w'>) テキスト行を書き込みます。その後、ファイルは追加モードで再度開かれます ('a'>)、既存のコンテンツに Today が追加されます。追加後の出力は次を使用して表示されますreadlines>。その後、ファイルは書き込みモードで再度開かれ、内容が Tomorrow で上書きされます。書き込み後の最終出力は次のように表示されます。readlines>

Python3


Javaのif文



# Python program to illustrate> # Append vs write mode> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)>#append mode> file1.write(>'Today '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.readlines())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)>#write mode> file1.write(>'Tomorrow '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.readlines())> print>()> file1.close()>

>

>

出力:

Output of Readlines after appending ['This is Delhi 
', 'This is Paris 
', 'This is London 
', 'Today 
'] Output of Readlines after writing ['Tomorrow 
']>

関連記事:

  • Python のファイル オブジェクト