ホームページ >バックエンド開発 >Python チュートリアル >Python基礎学習まとめ(8)
ファイルの処理方法を学び、プログラムに大量のデータを迅速に分析させ、エラーの処理方法を学び、事故に直面した場合のプログラムのクラッシュを回避します。例外について学びます。例外は Python によって作成される特別なオブジェクトで、プログラムの実行中に発生するエラーを管理し、プログラムの適用性、使いやすさ、安定性を向上させるために使用されます。
学習モジュールjson、jsonは、プログラムが予期せず実行を停止した場合の損失を避けるためにユーザーデータを保存するために使用できます。
ファイルの処理とデータの保存を学ぶと、ユーザーは入力するデータの種類と入力を選択することができ、プログラムを使用して何かを処理した後にプログラムを閉じて、次回もその処理を続けることができます。 。
例外を処理する方法を学び、ファイルが存在しない状況に対処し、プログラムをクラッシュさせる可能性のあるさまざまな問題に対処し、これらの誤ったデータが意図的でないエラーまたは損傷によるものであるかどうかにかかわらず、さまざまなエラーに直面した場合にプログラムをより堅牢にします。プログラムの悪意。
ファイルを読み取るには、ファイル全体を一度に読み取ることも、ファイルを 1 行ずつ読み取ることもできます。ファイルのサイズに応じて独自の読み取り方法を選択してください。
Python では、ファイルの読み取りと書き込みには 3 つの手順があります:
1. open() 関数を呼び出して、File オブジェクトを返します。
2. File オブジェクトの read() メソッドまたは write() メソッドを呼び出します。
3. File オブジェクトの close() メソッドを呼び出して、ファイルを閉じます。
open(filename) as file_object:
Contents = file_Object.read () #ファイルを自動的に閉じるため、クローズメソッドを呼び出す必要はありません。ファイルの現在のディレクトリで開くファイルを見つけます。
read()メソッドはファイルの内容を読み取ります
>>> helloContent = helloFile.read() >>> こんにちはコンテンツ 「ハローワールド!」
|
>>> baconFile = open('bacon.txt', 'w') >>> baconFile.write('Hello world!n') 13 >>> baconFile.close() >>> baconFile = open('bacon.txt', 'a') >>> baconFile.write('ベーコンは野菜ではありません。') 25 >>> baconFile.close() >>> baconFile = open('bacon.txt') >>> コンテンツ = baconFile.read() >>> baconFile.close() >>> 印刷(コンテンツ) こんにちは、ベーコンは野菜ではありません |
まず、bacon.txtを書き込みモードで開きます。 bacon.txt はまだ存在しないため、Python によって作成されます。開いているファイルに対して write() を呼び出し、文字列パラメータ 'Hello world! n' を write() に渡し、文字列をファイルに書き込み、改行を含む書き込まれた文字数を返します。次に、ファイルを閉じます。
ファイルの既存の内容にテキストを追加するには、先ほど書き込んだ文字列を置き換えるのではなく、ファイルを追加モードで開きます。ファイルに「ベーコンは野菜ではありません」と書き込んで閉じます。最後に、ファイルの内容を画面に出力するには、デフォルトの読み取りモードでファイルを開き、read() を呼び出し、結果の内容を content に保存し、ファイルを閉じて、内容を出力します。
write() メソッドは、print() 関数のように文字列の末尾に改行文字を自動的に追加しないことに注意してください。この文字は自分で追加する必要があります。
shelve モジュールを利用すると、Python プログラムの変数をバイナリのシェルフ ファイルに保存できます。 このようにして、プログラムは変数のデータをハードディスクから回復できます。シェルブ モジュールを使用すると、プログラムに「保存」および「開く」機能を追加できます。たとえば、プログラムを実行して構成設定を入力した場合、それらの設定をシェルフ ファイルに保存し、次回実行時にプログラムにそれらの設定をロードさせることができます。
>>> インポート棚 >shelfFile = shelve.open('mydata') >>> 猫 = ['ゾフィー'、'プーカ'、'サイモン'】 >>> 棚ファイル['猫'] = 猫 >shelfFile.close() |
Windows で前のコードを実行すると、現在の作業ディレクトリに 3 つの新しいファイル (mydata.bak、mydata.dat、mydata.dir) が表示されます。 OS X では、mydata.db ファイルが 1 つだけ作成されます。
これらのバイナリファイルにはシェルフに保存されているデータが含まれています。これらのバイナリの形式は重要ではありません。シェルブ モジュールがどのように実行するかではなく、何を実行するかを知る必要があるだけです。このモジュールを使用すると、プログラムのデータをファイルに保存する心配がなくなります。 プログラムは後でシェルブ モジュールを使用してこれらのファイルを再度開き、データを取得できます。シェルフ値は、一度開くと読み取りまたは書き込みができるため、読み取りまたは書き込みモードで開く必要はありません。
>shelfFile = shelve.open('mydata') >>> タイプ(シェルフファイル) <クラス 'shelve.DbfilenameShelf'> >>> シェルフファイル['猫'] ['ゾフィー'、'プーカ'、'サイモン'】 >shelfFile.close() |
辞書と同じように、シェルフの値にはkeys()メソッドとvalues()メソッドがあり、シェルフ内のキーと値のリストのような値を返します。これらのメソッドは真のリストではなくリストのような値を返すため、リスト形式を取得するには list() 関数に渡す必要があります。
>shelfFile = shelve.open('mydata') >>> リスト(shelfFile.keys()) [「猫」] >>> リスト(shelfFile.values()) [[「ゾフィー」、「プーカ」、「サイモン」]] >shelfFile.close() |
ファイルを作成するときにメモ帳やテキストエディットなどのテキストエディタで読む必要がある場合、プレーンテキストが便利です。ただし、Python プログラムからデータを保存する場合は、shelve モジュールを使用します。
関数 write() は、書き込まれたテキストの後の行を自動的に折り返さないため、改行文字 n を自分で追加する必要があります。
プログラムは os.makedirs() 関数を使用して新しいフォルダー (ディレクトリ) を作成できます。
>>> OSをインポートします >>> os.makedirs('C:\おいしい\くるみ\ワッフル') |
これにより、C:deliciousフォルダーが作成されるだけでなく、C:deliciousの下にwalnutフォルダーが作成され、C:deliciouswalnut内にwafflesフォルダーも作成されます。つまり、os.makedirs() は、完全なパス名が存在することを確認するために、必要なすべての中間フォルダーを作成します。
os.pathモジュールには、ファイル名とファイルパスに関連する便利な関数が多数含まれています。
shutil(またはシェルツール)モジュールには、Pythonプログラムでファイルのコピー、移動、名前変更、削除を可能にする関数が含まれています。 shutil 関数を使用するには、まず shutil をインポートする必要があります。
shutilモジュールはファイルやフォルダ全体をコピーする機能を提供します。
1. shutil.copy(source, destination) を呼び出して、パスのソースにあるファイルをパスの宛先にあるフォルダーにコピーします (ソースと宛先は両方とも文字列です)。
2. destinationがファイル名の場合、それがコピーされたファイルの新しい名前として使用されます。この関数は、コピーされるファイルのパスを表す文字列を返します。
>>> シュティル、OS をインポートします >>> os.chdir('C:\') >>> shutil.copy('C:\spam.txt','C:\delicious') 「C:\delicious\spam.txt」 >>> shutil.copy('eggs.txt', 'C:\delicious\eggs2.txt') 「C:\delicious\eggs2.txt」 |
shutil.move(source, destination)を呼び出して、パス元のフォルダーをパス先に移動し、新しい場所の絶対パスの文字列を返します。
宛先がフォルダーを指している場合、ソースファイルは宛先に移動され、元のファイル名は保持されます。
Pythonは例外と呼ばれる特別なオブジェクトを使用して、プログラムの実行中に発生するエラーを管理します。
Pythonではエラーが発生するたびに例外が作成されます。
例外を処理するように記述されている場合、プログラムは続行されますが、そうでない場合、プログラムは停止し、例外に関するレポートを含むトラックバックを返します。
例外はtry-excelコードブロックを使用して処理されます。指定された操作を実行し、Python に何をすべきかを指示します。 try-excel コード ブロック を使用すると、プログラムでエラーが発生した場合でも、プログラムは実行を継続し、何が問題なのかをユーザーに知らせるために作成したわかりやすいエラー メッセージを表示します。
除数が0の場合に例外が発生します。
整数型と浮動小数点型のパラメータのみが許可されます。データ型チェックは、組み込み関数 isinstance() を使用して実装できます
def my_abs(x): isinstance(x, (int, float)) でない場合: TypeError('不正なオペランドの型') を発生させる x >= 0 の場合: x を返す その他: return -x 値エラー
|
Python の組み込みロギング モジュールを使用すると、エラー情報を簡単に記録できます。
エラーをスローしたい場合は、まず必要に応じてエラークラスを定義し、継承関係を選択してから、raise ステートメントを使用してエラーインスタンスをスローします。
データの保存にはjsonモジュールを使用します。 Json データの形式は Python に固有のものではないため、他のプログラミング言語を使用している人々と共有できます。これは便利で習得が簡単な軽量形式です。
JSON (JavaScript Object Notation) 形式は、もともと JavaScript 用に開発されましたが、その後、多くの言語で使用される一般的な形式になりました。
json.dump()とjson.load()を使用します
json.dump() は、保存するデータとデータの保存に使用できるファイル オブジェクトという 2 つの実際のパラメーターを受け取ります。
json.dumpとjson.loadはそれぞれデータの保存と読み込みに一緒に使用されます。
1. コードは正しく実行できますが、コードを特定の作業を完了する一連の関数に分割するなど、さらなる改善が可能です。このプロセスは再構築と呼ばれます。リファクタリングにより、コードがより明確になり、理解しやすくなり、拡張が容易になります。
2. ロジックのほとんどを 1 つ以上の関数に入れます。
1. ファイルの読み取り、ファイル全体の読み取りと 1 行の読み取り、ファイルの操作、オープン、読み取りモード、書き込みモード、追加モード、読み取りプラス書き込みモードを学習しました。
2. 例外処理に try-excel-else コード ブロックを使用する方法。例外タイプ。データの操作、データの保存と読み取り、JSON モジュールの使用、ダンプとロードの使用、コードのリファクタリングの方法を学びます。
表示を支援するために print() が使用される場合は常に、代わりにアサーションを使用できます。
def foo(s): n = int(s) n != 0、「n はゼロです!」をアサートします 10/n を返す
def main(): ふー('0') |
assert は、式 n != 0 が True であるべきであることを意味します。そうでない場合、プログラム動作のロジックに従って、次のコードは間違いなく間違っています。
アサーションが失敗した場合、assert ステートメント自体が AssertionError をスローします。
以上がPython基礎学習まとめ(8)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。