ホームページ バックエンド開発 Python チュートリアル Pythonファイルの読み書き操作を詳しく解説

Pythonファイルの読み書き操作を詳しく解説

Oct 19, 2016 am 11:57 AM
python

1.open

open を使用してファイルを開いた後、忘れずにファイル オブジェクトの close() メソッドを呼び出す必要があります。たとえば、try/finally ステートメントを使用すると、ファイルを最終的に閉じることができるようになります。

file_object = open('thefile.txt')

try:

all_the_text = file_object.read( )

finally:

file_object.close( )

注: open ステートメントを try ブロックに置くことはできませんファイルを開くときに例外が発生すると、ファイル オブジェクト file_object は close() メソッドを実行できないためです。

2. ファイルの読み取り

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

input = open('data', 'r')

#2 番目のパラメータのデフォルトは r

input = open('data')

バイナリ読み取りfile

input = open('data', 'rb')

すべての内容を読む

file_object = open('thefile.txt')

try:

all_the_text = file_object.read( )

finally :

file_object.close()チャンクでない場合:

Break

do_something_with (chunk)

finally:

file_object.close ()

1 行ごとに読み取り

ファイルがテキスト ファイルの場合は、ファイル オブジェクトを直接トラバースして次のことを行うこともできます。各行を取得:

for line in file_object:

プロセス行

3. ファイルの書き込み

テキストファイルの書き込み

output = open('data', 'w')

バイナリファイルの書き込み

output = open('data', 'wb')

書き込みファイルを追加

output = open('data', 'w+')

データを書き込み

file_object = open('thefile.txt ', 'w')

file_object.write(all_the_text)

file_object.close( )

複数行を書き込みます

file_object.writelines(list_of_text_strings)

writelines を呼び出すと、複数行を書き込む方がパフォーマンスが高くなります。 write を使用して一度に書き込みます。

ログ ファイルを処理するとき、ログ ファイルが巨大で、一度にファイル全体をメモリに読み込んで処理することができない、たとえば、 2GB の物理メモリの場合、一度に処理できるのはその内容の 200MB のみです。

Python では、組み込みの File オブジェクトが、このようなことを実現するための readlines(sizehint) 関数を直接提供します。次のコードを例に挙げます:

file = open('test.log', 'r')sizehint = 209715200 # 200Mposition = 0lines = file.readlines(sizehint)while not file.tell() - Position

readlines(sizehint) 関数が呼び出されるたびに、約 200MB のデータが返され、ほとんどの場合、返されるデータは完全な行データである必要があります。 、戻り値のデータのバイト数は、sizehint で指定された値よりわずかに大きくなります (readlines(sizehint) 関数が最後に呼び出された場合を除く)。通常、Python はユーザー指定の sizehint 値を内部キャッシュ サイズの整数倍に自動的に調整します。

file は Python の特別なタイプで、Python プログラムで外部ファイルを操作するために使用されます。 Python ではすべてがオブジェクトであり、ファイルも例外ではありません。ファイル メソッドと属性があります。まず、ファイル オブジェクトの作成方法を見てみましょう:

file(name[, mode[,buffering]])

file() 関数は、ファイル オブジェクトを作成するために使用されます。これには、open() というエイリアスがあります。より鮮明に、これらは組み込み関数です。そのパラメータを見てみましょう。そのパラメータはすべて文字列の形式で渡されます。 name はファイルの名前です。

mode はオープン モードで、オプションの値は r wa a U で、それぞれ読み取り (デフォルト) と書き込みのさまざまな改行をサポートするモードを表します。 w または a モードでファイルを開く場合、ファイルが存在しない場合は自動的に作成されます。また、w モードを使用して既存のファイルを開く場合、初期ファイル操作マークがファイルの先頭にあるため、この時点で書き込み操作を実行すると、元のファイルの内容は消去されます。間違いなく削除されます。歴史的な理由により、改行文字にはシステムごとに異なるモードがあります。たとえば、Unix では n ですが、Windows では、U モードでファイルを開くと、すべての改行モードがサポートされます。これは ' を意味します。 r' 'n' 'rn' はすべて改行を表すことができ、このファイルで使用される改行文字を格納するために使用されるタプルがあります。ただし、改行にはさまざまなモードがありますが、Python で読み取る場合は代わりに n が使用されます。モード文字の後に、2 つの記号 + b t を追加することもできます。これらは、それぞれ、ファイルの読み取りと書き込みを同時に行うことができ、ファイルをバイナリ モードまたはテキスト モード (デフォルト) で開くことができることを示します。

buffering 0 の場合はバッファリングなしを意味し、1 の場合は「行バッファリング」を意味し、1 より大きい数値の場合はバッファーのサイズを意味します (バイト単位である必要があります)。

ファイル オブジェクトには独自のプロパティとメソッドがあります。まずはファイルの属性を見てみましょう。

closed #ファイルが閉じられたかどうかをマークし、close()で書き換えます

encoding #ファイルエンコード

mode #オープンモード

name #ファイル名

newlines #ファイルで使用される改行モードはタプルです

ソフトスペース #boolean 型 (通常は 0) は、読み取りと書き込みに使用されると言われています print

file:

F.read([size]) #size は読み取りの長さ (バイト単位) です

F.readline( [ size])

# size が定義されている場合は行の一部のみを返すことができます

F.readlines([size])

# ファイルの各行を次のメンバーとして扱いますリストを返し、このリストを返します。実際、これはループ内で readline() を呼び出すことによって内部的に実装されます。 size パラメータが指定されている場合、size は読み取られるコンテンツの全長を表します。これは、ファイルの一部のみが読み取られることを意味します。

F.write(str)

#str をファイルに書き込みます。write() は str の後に改行文字を追加しません

F.writelines(seq)

#seq の内容をすべてファイルに書き込みます。この関数も、各行の後に何も追加せずに、忠実に記述するだけです。

ファイルのその他のメソッド:

F.close()

#ファイルを閉じます。 Python は、使用されなくなったファイルを自動的に閉じますが、この機能は保証されていません。自分でファイルを閉じる習慣を身に付けることをお勧めします。ファイルを閉じた後にファイルを操作すると、ValueError が生成されます

F.flush()

#バッファの内容をハードディスクに書き込みます

F.fileno()

#long 整数を返します「file」タグ「

F.isatty()

#ファイルが端末デバイスファイルかどうか(UNIXシステムの場合)

F.tell()

#ファイル操作マークの現在位置を返すファイルの先頭を起点に

F.next()

#次の行に戻り、ファイル操作フラグを次の行に移動します。ファイルが for ... in file などのステートメントで使用される場合、トラバーサルを実装するために next() 関数が呼び出されます。

F.seek(offset[,whence])

#ファイル操作マークをオフセット位置に移動します。このオフセットは通常、ファイルの先頭を基準にして計算され、通常は正の数になります。ただし、whence パラメーターが指定されている場合は、この限りではありません。whence を 0 にすると最初から計算を開始し、1 を指定すると現在の位置を原点として使用できます。 2はファイルの末尾を起点として計算することを示します。ファイルを a または a+ モードで開いた場合、書き込み操作が実行されるたびに、ファイル操作マークは自動的にファイルの末尾に戻ることに注意してください。

F.truncate([size])

#指定されたサイズにファイルをカットします。デフォルトでは、現在のファイル操作マークの位置までカットされます。サイズがファイル サイズより大きい場合、システムによっては、ファイルが変更されないか、対応するサイズまでファイルが 0 でパディングされるか、ランダムなコンテンツが追加されることがあります。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

mysqlは支払う必要がありますか mysqlは支払う必要がありますか Apr 08, 2025 pm 05:36 PM

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

hadidb:pythonの軽量で水平方向にスケーラブルなデータベース hadidb:pythonの軽量で水平方向にスケーラブルなデータベース Apr 08, 2025 pm 06:12 PM

hadidb:軽量で高レベルのスケーラブルなPythonデータベースHadIDB(HadIDB)は、Pythonで記述された軽量データベースで、スケーラビリティが高くなっています。 PIPインストールを使用してHADIDBをインストールする:PIPINSTALLHADIDBユーザー管理CREATEユーザー:CREATEUSER()メソッド新しいユーザーを作成します。 Authentication()メソッドは、ユーザーのIDを認証します。 fromhadidb.operationimportuseruser_obj = user( "admin"、 "admin")user_obj。

MongoDBデータベースパスワードを表示するNAVICATの方法 MongoDBデータベースパスワードを表示するNAVICATの方法 Apr 08, 2025 pm 09:39 PM

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

mysqlはインターネットが必要ですか? mysqlはインターネットが必要ですか? Apr 08, 2025 pm 02:18 PM

MySQLは、基本的なデータストレージと管理のためにネットワーク接続なしで実行できます。ただし、他のシステムとのやり取り、リモートアクセス、または複製やクラスタリングなどの高度な機能を使用するには、ネットワーク接続が必要です。さらに、セキュリティ対策(ファイアウォールなど)、パフォーマンスの最適化(適切なネットワーク接続を選択)、およびデータバックアップは、インターネットに接続するために重要です。

MySQLを解く方法は、ローカルホストに接続できません MySQLを解く方法は、ローカルホストに接続できません Apr 08, 2025 pm 02:24 PM

MySQL接続は、次の理由が原因である可能性があります。MySQLサービスは開始されず、ファイアウォールは接続をインターセプトし、ポート番号が間違っています。ユーザー名またはパスワードが間違っています。My.cnfのリスニングアドレスは不適切に構成されています。トラブルシューティング手順には以下が含まれます。 2.ファイアウォール設定を調整して、MySQLがポート3306をリッスンできるようにします。 3.ポート番号が実際のポート番号と一致していることを確認します。 4.ユーザー名とパスワードが正しいかどうかを確認します。 5. my.cnfのバインドアドレス設定が正しいことを確認してください。

MySQLワークベンチはMariadBに接続できますか MySQLワークベンチはMariadBに接続できますか Apr 08, 2025 pm 02:33 PM

MySQLワークベンチは、構成が正しい場合、MariadBに接続できます。最初にコネクタタイプとして「mariadb」を選択します。接続構成では、ホスト、ポート、ユーザー、パスワード、およびデータベースを正しく設定します。接続をテストするときは、ユーザー名とパスワードが正しいかどうか、ポート番号が正しいかどうか、ファイアウォールが接続を許可するかどうか、データベースが存在するかどうか、MariadBサービスが開始されていることを確認してください。高度な使用法では、接続プーリングテクノロジーを使用してパフォーマンスを最適化します。一般的なエラーには、不十分な権限、ネットワーク接続の問題などが含まれます。エラーをデバッグするときは、エラー情報を慎重に分析し、デバッグツールを使用します。ネットワーク構成を最適化すると、パフォーマンスが向上する可能性があります

高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? 高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? Apr 08, 2025 pm 06:03 PM

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

Amazon AthenaでAWS接着クローラーの使用方法 Amazon AthenaでAWS接着クローラーの使用方法 Apr 09, 2025 pm 03:09 PM

データの専門家として、さまざまなソースから大量のデータを処理する必要があります。これは、データ管理と分析に課題をもたらす可能性があります。幸いなことに、AWS GlueとAmazon Athenaの2つのAWSサービスが役立ちます。

See all articles