ブログに戻る

txtファイル形式:Python 3でプレーンテキストファイルを扱う

txtファイル形式:Python 3でプレーンテキストファイルを扱う

はじめに

プログラミング言語の主な機能の1つは、データの処理を支援することです。これには、データの書き込み、読み取り、保存、および転送が含まれます。Python は最も人気のあるプログラミング言語の1つです。Pythonを使用する予定がある場合は、さまざまなファイルタイプの使用方法について基本的な概念を理解しておく必要があります。最も単純なファイルタイプは、txtまたはプレーンテキストファイル形式です。アクセス制御のためにユーザーをチェックするプログラムがあるとします。リスト自体はテキストファイルとして保存されます。したがって、特定の企業で別のプログラムを使用する場合でも、テキストドキュメントから値を抽出することになります。そのため、テキストファイル形式を理解することが重要です。

このチュートリアルでは、 Pythonにおける基本的なファイル形式に関する簡単な背景から始めます。その後、プログラムでテキストファイルを開き、読み取り、書き込みを行う方法について説明します。

始める前に…

チュートリアルを始める前に、満たす必要のある前提条件がいくつかあります。まず、すでにPython 3をインストールしている必要があります。それに加えて、システム上にローカルなプログラミング環境が必要です。このチュートリアルは、Ubuntu 16.04以上、Debian 8、CentOS 7、Mac OS X、およびWindows 10に適用されます。

ファイル形式

Pythonで利用できるファイル形式はさまざまあります。以下の表は、さまざまな形式とそれらを使用できる場所を一覧にしたものです。

ファイルタイプ 説明
txt プレーンテキストファイルは、文字(または文字列)のみを表すデータを保存し、構造化されたメタデータは除外されます。
CSV カンマ区切り値ファイルは、カンマ(またはその他の区切り文字)を使用して保存されたデータを構造化し、データを表形式で保存できるようにします。
HTML HyperText Markup Languageファイルは構造化データを保存し、一般的にほとんどのWebサイトで使用されます。
JSON JavaScript Object Notationはシンプルで効率的な形式であり、データの保存や転送に最も一般的に使用される形式の1つです。

このチュートリアルでは、txtファイル形式についてさらに詳しく説明します。

ステップ1:テキストファイルの作成

まず、Pythonで新しいテキストファイルを作成する必要があります。理解を深めるために、曜日を例にして考えてみましょう。このために、テキストエディタを開き、新しいtxtファイルを作成して、days.txtと名付けます。次に、新しいファイルに曜日を個別の行として入力しましょう。

コンテンツが用意できたので、ファイルを保存します。ファイルをどこに保存したかを覚えておくことが重要です。ユーザーがsammyであるとしましょう。ユーザーは次のパスにファイルを保存しました:/users/sammy/days.txt。今後のプロセスではこのパスを使用します。

ステップ2:テキストファイルを開く

プログラムの作成を開始する前に、エディタでファイルを作成する必要があります。まず、files.pyという名前のファイルを作成し、/users/sammyディレクトリに保存します。これはdays.txtファイルと同様です。

ファイルを開くには、ディスクファイルと変数の間の接続を開始する必要があります。これがファイルを開く(‘opening’)ということです。ファイルの位置はファイルのパスによって示されます。ファイルを開くにはパスが必要です。たとえば、days.txtファイルのパスは次のとおりです:/users/sammy/days.txt。次に、このデータを保存するための文字列変数を作成します。以下に示すように、path変数をfiles.pyスクリプト内に作成し、days.txtのパスに従って変数を変更します:

その後、open()関数を使用して、days.txtファイルを開きます。この関数には、ファイルパスを指定する必要があります。他のパラメータの中でも、最も重要なのはモード(mode)パラメータです。これは、ファイルを開くモードを指定するために追加できるオプションの文字列です。以下は、モードオプションの一部です:

  • 'r’:読み取り
  • 'w’:書き込み
  • 'x’:新規ファイルの作成と書き込み
  • 'a’:ファイルへの追記
  • 'r+’:同じファイルの読み取りと書き込み

ファイルから単に読み取るには、'r’モードを使用する必要があります。open()関数を実行して、days.txtファイルを開きます。次に、それをdays_file変数に代入します:

ステップ 3: テキストファイルの読み込み

ファイルを開いた後、変数を通じてそこから読み込むことができます。ファイルの読み込みに関連する操作は3つあります。これら3つすべてを見ていきましょう。

最初の操作は <file>.read() です。これにより、ファイルの内容全体が1つの文字列として表示されます。

出力:

次の操作は <file>.readline() です。これにより、ファイルの次の行が表示されます。基本的にはファイルを1行ずつ読み込みます。

出力:

この関数をもう一度呼び出すと、コード内の次の行が読み込まれます。次のように呼び出すことができます。

出力:

3つ目の最後の操作は <file>.readlines() です。これにより、ファイル内のすべての行のリストが表示されます。各項目が1つの行を表します。

出力:

注意点として、一度ファイルを読み込むと、再度読み込むことはできません。これは使用する関数に関係なく適用されます。別の操作を使用してファイルを再度読み込むには、新しいファイル変数を開く必要があります。

ステップ 4: ファイルの書き込み

次に、新しいファイルへの書き込み方法を学びます。この例のファイルには、タイトル(Days of the Week)があり、その後に続いて曜日が記述されます。

まず、title 変数を作成する必要があります。

次に、曜日を文字列変数の形式で保存する必要があります。この変数は days と呼ばれます。上記のステップで使用したコードを引き続き使用します。ファイルを読み込みモードで開き、出力を新しい days 変数に格納します。

これは、タイトルと個々の曜日の両方の変数を作成したことを意味します。これで、ファイル自体を書き込むことができます。最初のステップは、ディレクトリ /users/sammy/ を使用してファイルの場所を指定することです。パスには、新しいファイル /users/sammy/new_days.txt も指定します。場所のパスは new_path 変数の下に保持されます。次に、open() 関数を使用して、ファイルを ‘w’ モードで開きます。

ファイルが開いたので、書き込み関数 <file>.write() を使用してデータを入力できます。ここでは、単一の文字列パラメータを入力する必要があります。改行を入力したい場合は、改行文字を入力します。このファイルでは、最初にタイトルを入力し、次に曜日を入力します。同時に、スクリプトの進行状況を追跡するためのいくつかの print 文も記述します。

ステップ 5: ファイルのクローズ

ファイルを閉じると、ディスクファイルとファイル変数の間の接続が切断されます。ファイルが閉じられると、他のプログラムからアクセスできるようになります。これは、ファイルとそのデータを安全に保つことにも役立ちます。したがって、処理が終わったら必ずファイルを閉じることを忘れないでください。そのためには、<file>.close() 関数を使用します。

これで、Pythonにおけるファイルの処理に関する部分は終了です。

ステップ 6: コードの確認

最後に、コードを確認します。作成したコードを実行する前に確認を行う必要があります。コードは次のようになります。

コードを保存したら、Pythonスクリプトを実行する必要があります。そのためには、ターミナルを開く必要があります:

次のような出力が表示されます:

コードを確認するには、次の新しいファイルを開きます:new_days.txt。すべてが正常であれば、次のように表示されます:

上記のようなものが表示されれば、手順は正常に完了しています。

まとめ

このチュートリアルでは、Python 3における基本的なファイル形式について説明することを目的としました。その中でも最も重要なものの1つがテキストファイル形式です。これについてさらに詳しく説明しました。これで、データファイルを開く、読み込む、書き込む、閉じるプロセスと手順を十分に理解できたはずです。この情報を活用することで、ご自身のPythonプログラミングにおいてテキストファイル形式を効果的に利用できるようになります。

Pythonでプレーンテキストファイルを扱う方法を学んだところで、Pythonの活用を始めるための当ブログの他のチュートリアルをいくつかご紹介します:

ハッピーコンピューティング!

author

Hark Labs

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。