Python
 Computer >> コンピューター >  >> プログラミング >> Python

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


Pythonでは、ファイルの読み取りまたは書き込みを試みるたびに、ライブラリがネイティブに処理されるため、ライブラリをインポートする必要はありません。

最初に行うことは、組み込みのopen関数を使用してファイルオブジェクトを取得することです。

open関数はファイルを開き、ファイルオブジェクトを返します。ファイルオブジェクトには、情報を取得したり、開いたファイルを操作したりするために使用できるメソッドと属性が含まれています。

ファイルとは何ですか?

ファイルに対して操作を行う前に、まずファイルとは何かを理解しましょう。ファイルは、関連情報を保存するためのディスク上の名前付きの場所です。ファイルには名前と場所があるため、ハードディスクに保存されます。

Pythonでは、ファイル操作は次の順序で実行されます。

  • ファイルを開く。
  • 読み取りまたは書き込み操作。
  • ファイルを閉じます。

ファイルを開く-Open()関数

読み取りまたは書き込みの目的でファイルを開くには、組み込みのopen()関数を使用する必要があります。

open()関数は2つの引数を使用します。 1つ目はファイルの名前で、2つ目はファイルを開く目的です。読み取りまたは書き込み用ですか?

Pythonでファイルオブジェクトを開くための構文は次のとおりです。

 File_obj =open(“ filename”、“ mode”)

場所

  • ハンドルとも呼ばれるFile_objは、ファイルオブジェクトを追加するための変数です。

  • ファイル名:ファイルの名前。

  • モード:ファイルが使用される方法をインタプリタに通知します。

>>> f =open( "pytube1.py")#現在のディレクトリでファイルを開く>>> f =open(r "c:\ users \ rajesh \ Documents \ readme.txt")#ファイルを指定されたパス

モード引数

上からわかるように、open()関数に2番目の引数を与えることはオプションであり、モードです。ファイルを開いているときにモードを指定できます。 「r」を読み取るか、「w」を書き込むか、ファイルに「a」を追加するかどうか。ファイルをテキストモードで開くかバイナリモードで開くかを指定することもできます。

デフォルトのモードはテキストモードで、ファイルから読み取るときに文字列を取得します。

以下は、open()関数でサポートされているさまざまなモードです。

Pythonファイルモード

モード 説明
‘r’ 読み取り用にファイルを開きます。 (デフォルト)
‘w’ 書き込み用にファイルを開きます。存在しない場合は新しいファイルを作成し、存在する場合はファイルを切り捨てます。
‘x’ 排他的に作成するためにファイルを開きます。ファイルがすでに存在する場合、操作は失敗します。
‘a’ ファイルを切り捨てずにファイルの最後に追加するために開きます。存在しない場合は、新しいファイルを作成します。
‘t’ テキストモードで開きます。 (デフォルト)
‘b’ バイナリモードで開きます。
‘+’ 更新(読み取りと書き込み)のためにファイルを開く
>>> f =open( "pytube1.py")#'r'または'rt'と同等>>>f =open( "pytube1.py"、 "w")#テキストモードで書き込む>>> f =open( "color3.jpg"、 "r + b")#バイナリモードでの読み取りと書き込み

デフォルトのエンコーディングはプラットフォームに依存します。 Windowsでは「cp1252」ですが、Linuxでは「utf-g」です。

エンコーディングタイプを指定することをお勧めします:

>>> f =open( "pytube1.py"、mode ="r"、encoding ='utf-8')

テキストファイルを作成する

私はPythonシェルを使用していますが、任意のテキストエディタまたは任意のテキストエディタを使用してPythonで簡単なテキストファイルを作成しましょう☺。

>>>#現在の作業ディレクトリに「textfile.txt」という名前のテキストファイルを作成します>>> f =open( "textfile.txt"、 "w")>>>#aboveはtextfileという名前のファイルを作成しますデフォルトディレクトリの.txt>>>f.write( "Hello、Python")13>>> f.write( "\ nこれは最初の行です")23>>> f.write("\nこれは2番目の行ですline ")24>>> f.write(" \ nなぜもっと書くのか?、できるので:) ")37>>> f.close()

現在の作業ディレクトリにtextfile.txtという名前の新しいファイルが作成され、新しく作成されたファイルを開くと、次のように表示されます。

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

Pythonでのテキストファイルの読み取り

Pythonでテキストファイルを読み取るには、複数の方法を使用できます。

ファイル内のすべての文字を含む文字列を抽出する場合。次の方法を使用できます:

 file.read()

以下は、上記の構文を実装するためのプログラムです。

>>> f =open( "textfile.txt"、 "r")>>> f.read()'こんにちは、Python \nこれが最初の行です\nこれが2行目です\nなぜもっと書くのですか?、できるから:)'

ファイルから特定の文字数を読み取りたい場合は、非常に簡単に読み取ることができます。

>>> f =open( "textfile.txt"、 "r")>>> print(f.read(13))こんにちは、Python 

ただし、ファイルを1行ずつ読み取りたい場合は、readline()関数を使用できます。

>>> f =open( "textfile.txt"、 "r")>>> print(f.read(13))Hello、Python>>> print(f.readline())>>> f =open( "textfile.txt"、 "r")>>> print(f.readline())こんにちは、Python>>> print(f.readline())これが最初の行です>>> print(f。 readline())これは2行目です>>> print(f.readline())なぜもっと書くのですか? 

または、ファイル内のすべての行を適切に分離して返したい場合は、readlines()関数を使用できます。

>>> f =open( "textfile.txt"、 "r")>>> print(f.readlines())['Hello、Python \ n'、'これは最初の行です\n'、 'これは私たちの2行目です\n'、'なぜもっと書くのですか?、私たちができるので:)'] 

各行の上はカンマで区切られています。

ファイルオブジェクトをループする

最も構造化された効率的な方法でファイルのすべての行を読み取ったり返したりする場合は、ループオーバーメソッドを使用できます。

>>> f =open( "textfile.txt"、 "r")>>> for line in f:print(line)こんにちは、Pythonこれが最初の行ですこれが2番目の行です:) 

ファイルへの書き込み

ファイルへの書き込みは簡単です。ファイルを開いて、ファイルに書き込みたいテキストを渡すだけです。

この方法を使用して、既存のファイルにデータを追加できます。ファイルにデータを書き込んだ後、EOL文字を使用して改行を開始します。

>>> f =open( "textfile.txt"、 "w")>>> f.write( "'PYTHONに恋をする理由はたくさんあります'")54>>> f.write ("\ n参照、もう1行追加しました:)。")36>>> f.close()>>> f =open( "textfile.txt"、 "r")>>> fの行: print(line)'PYTHONに恋をする理由はたくさんあります'参照してください、もう1行追加しました:) 

ファイルを閉じる

ファイルの操作が終了したら、f.close()コマンドを使用して処理を終了する必要があります。これで、ファイルを完全に閉じ、使用中のすべてのリソースを終了し、システムが他の場所で使用できるようにリソースを解放しました。

>>> f =open( "textfile.txt"、 "r")>>> f.close()>>> f.readlines()Traceback(最後の最後の呼び出し):File " "、1行目、 f.readlines()ValueError:閉じたファイルでのI/O操作。

ファイルを閉じると、ファイルオブジェクトを使用しようとするとエラーが発生します。

ステートメントあり

withステートメントは、ファイルオブジェクトで使用できます。 2つ(ステートメントオブジェクトとファイルオブジェクトを含む)を使用すると、プログラムでの構文と例外処理がはるかにクリーンになります。

もう1つの利点は、ファイル操作が完了すると、開いているファイルが自動的に閉じられることです。

構文

ファイルとしてopen( "filename")を使用:

例:

>>> with open( "textfile.txt")as f:for line in f:print(line)

出力

'PYTHONに恋をする理由はたくさんあります'参照してください、もう1行追加しました:) 

withステートメントを使用してファイルに書き込むことも簡単です(これまでに推測したように)。

>>> with open( "textfile.txt"、 "a")as f:f.write( "\ nHello、Python-Here i come again!")38>>> with open("textfile。 txt ")as f:for line in f:print(line)'PYTHONに恋をする理由はたくさんあります'参照してください、もう1行追加しました:)こんにちは、Python-ここでもう一度来ます!

テキストファイルの行を分割する

Pythonのsplit()関数を使用して、テキストファイルから取得した行を分割できます。スペース文字、コロンなど、任意の文字を使用してテキストを分割できます。

>>> with open( "textfile.txt"、 "r")as f:data =f.readlines()for line in data:words =line.split()print(words)

出力

 ['There'、'are'、'tons'、'to'、'reason'、'to'、 "'fall"、' in'、' love'、' with'、 "PYTHON'"] ['See、'、'i'、'have'、'added'、'one'、'more'、'line'、':)'] ['Hello、'、'Python-Here'、'i '、' come'、' once'、' again!']そして、スペースの代わりにコロンを使用してテキストを分割します(上記のように)。line.split()をline.split()に変更する必要があります。 “:”)そして私たちの出力は次のようになります:["'PYTHONに恋をする理由はたくさんあります'\ n"] ['参照してください、もう1行追加しました'、')。\ n'] ['こんにちは、Python-ここにもう一度来ます!'] 

  1. Python Tkinterのaskopenfile()関数

    Pythonプログラムで使用されるファイルへのパスをハードコーディングする代わりに、ユーザーがGUIを使用してosフォルダー構造を参照し、ユーザーがファイルを選択できるようにすることができます。これは、キャンバスを定義し、ファイルを参照するためのボタンを配置するtkinterモジュールを使用して実現されます。 以下のプログラムでは、ファイルオープナー関数を定義します。 Pythonはテキストファイルの内容を読み取り、非常に読みやすい方法で印刷できるため、この関数を使用してテキストファイルを開くだけです。 .txtファイルや.csvファイルなどのテキストベースのファイルを読み取ることができます

  2. Pythonのジャンクファイルオーガナイザー?

    これは、ほとんどのファイルとフォルダーを1つの場所に保持し、すべてのファイルが何であるか混乱することがあり、手動でそれを行うには怠惰すぎるPythonプログラマーにとって非常に役立つように思われるかもしれません。以下は、適切なフォルダ内のすべてを1回で整理または簡略化して、空のディレクトリを削除するPythonプログラムです。 したがって、さまざまなタイプのファイルが多数存在するディレクトリパスがあり(以下のように)、プログラムは各ファイルタイプをそれぞれのフォルダに分離します(以下のように)。 入力フォルダの構造 必要な出力 まず、さまざまなフォルダに分離するファイル