Python基礎学習まとめ(8)
10. ファイルと例外
ファイルの処理方法を学び、プログラムに大量のデータを迅速に分析させ、エラーの処理方法を学び、事故に直面した場合のプログラムのクラッシュを回避します。例外について学びます。例外は Python によって作成される特別なオブジェクトで、プログラムの実行中に発生するエラーを管理し、プログラムの適用性、使いやすさ、安定性を向上させるために使用されます。
学習モジュールjson、jsonは、プログラムが予期せず実行を停止した場合の損失を避けるためにユーザーデータを保存するために使用できます。
ファイルの処理とデータの保存を学ぶと、ユーザーは入力するデータの種類と入力を選択することができ、プログラムを使用して何かを処理した後にプログラムを閉じて、次回もその処理を続けることができます。 。
例外を処理する方法を学び、ファイルが存在しない状況に対処し、プログラムをクラッシュさせる可能性のあるさまざまな問題に対処し、これらの誤ったデータが意図的でないエラーまたは損傷によるものであるかどうかにかかわらず、さまざまなエラーに直面した場合にプログラムをより堅牢にします。プログラムの悪意。
10.1 ファイルからのデータの読み取り
ファイルを読み取るには、ファイル全体を一度に読み取ることも、ファイルを 1 行ずつ読み取ることもできます。ファイルのサイズに応じて独自の読み取り方法を選択してください。
10.1.1 ファイル全体を読み取る
Python では、ファイルの読み取りと書き込みには 3 つの手順があります:
1. open() 関数を呼び出して、File オブジェクトを返します。
2. File オブジェクトの read() メソッドまたは write() メソッドを呼び出します。
3. File オブジェクトの close() メソッドを呼び出して、ファイルを閉じます。
open() 関数を使用してファイルを開きます
open(filename) as file_object:
Contents = file_Object.read () #ファイルを自動的に閉じるため、クローズメソッドを呼び出す必要はありません。ファイルの現在のディレクトリで開くファイルを見つけます。
read()メソッドはファイルの内容を読み取ります
Fileオブジェクトの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 モジュールを使用します。
10.2.2 複数行を書く
関数 write() は、書き込まれたテキストの後の行を自動的に折り返さないため、改行文字 n を自分で追加する必要があります。
10.3 OSの動作
10.3.1 os.makedirs()を使用して新しいフォルダーを作成します
プログラムは os.makedirs() 関数を使用して新しいフォルダー (ディレクトリ) を作成できます。
>>> OSをインポートします >>> os.makedirs('C:\おいしい\くるみ\ワッフル') |
これにより、C:deliciousフォルダーが作成されるだけでなく、C:deliciousの下にwalnutフォルダーが作成され、C:deliciouswalnut内にwafflesフォルダーも作成されます。つまり、os.makedirs() は、完全なパス名が存在することを確認するために、必要なすべての中間フォルダーを作成します。
10.3.2 os.pathモジュール
os.pathモジュールには、ファイル名とファイルパスに関連する便利な関数が多数含まれています。
1. ファイルサイズとフォルダーの内容を表示します
- ファイル パスを処理する方法を確立したら、特定のファイルやフォルダーに関する情報の収集を開始できます。 os.path モジュールは、ファイルのバイト数と、指定されたフォルダー内のファイルとサブフォルダーを表示する関数を提供します。
- os.path.getsize(path)を呼び出すと、pathパラメータにファイルのバイト数が返されます。
- os.listdir(path) を呼び出すと、path パラメーター内の各ファイルを含むファイル名文字列のリストが返されます (この関数は os.path ではなく os モジュール内にあることに注意してください)。
- os.path.join()を使ってフォルダ名と現在のファイル名を結び付けました。
2. パスの有効性を確認します
- 指定したパスが存在しない場合、多くの Python 関数がクラッシュし、エラーが報告されます。 os.path モジュールは、指定されたパスが存在するかどうか、およびそれがファイルであるかフォルダーであるかを検出する機能を提供します。
- os.path.exists(path)を呼び出すと、pathパラメータが指すファイルまたはフォルダが存在する場合はTrueが返され、そうでない場合はFalseが返されます。
- pathパラメータが存在し、それがファイルである場合、os.path.isfile(path)を呼び出すとTrueが返され、それ以外の場合はFalseが返されます。
- pathパラメータが存在し、それがフォルダの場合、os.path.isdir(path)を呼び出すとTrueが返され、それ以外の場合はFalseが返されます。
10.4 ファイルを整理する
10.4.1 shutil モジュール
shutil(またはシェルツール)モジュールには、Pythonプログラムでファイルのコピー、移動、名前変更、削除を可能にする関数が含まれています。 shutil 関数を使用するには、まず shutil をインポートする必要があります。
10.4.1.1 ファイルとフォルダーをコピーする
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」 |
10.4.1.2 ファイルとフォルダーの移動と名前変更
shutil.move(source, destination)を呼び出して、パス元のフォルダーをパス先に移動し、新しい場所の絶対パスの文字列を返します。
宛先がフォルダーを指している場合、ソースファイルは宛先に移動され、元のファイル名は保持されます。
10.5例外
Pythonは例外と呼ばれる特別なオブジェクトを使用して、プログラムの実行中に発生するエラーを管理します。
Pythonではエラーが発生するたびに例外が作成されます。
例外を処理するように記述されている場合、プログラムは続行されますが、そうでない場合、プログラムは停止し、例外に関するレポートを含むトラックバックを返します。
例外はtry-excelコードブロックを使用して処理されます。指定された操作を実行し、Python に何をすべきかを指示します。 try-excel コード ブロック を使用すると、プログラムでエラーが発生した場合でも、プログラムは実行を継続し、何が問題なのかをユーザーに知らせるために作成したわかりやすいエラー メッセージを表示します。
1.ZeroDivisionError 例外
除数が0の場合に例外が発生します。
2.TypeError 例外
整数型と浮動小数点型のパラメータのみが許可されます。データ型チェックは、組み込み関数 isinstance() を使用して実装できます
def my_abs(x): isinstance(x, (int, float)) でない場合: TypeError('不正なオペランドの型') を発生させる x >= 0 の場合: x を返す その他: return -x 値エラー
|
3. エラーを記録する
Python の組み込みロギング モジュールを使用すると、エラー情報を簡単に記録できます。
4. エラーをスローする
エラーをスローしたい場合は、まず必要に応じてエラークラスを定義し、継承関係を選択してから、raise ステートメントを使用してエラーインスタンスをスローします。
10.6 データを保存する
データの保存にはjsonモジュールを使用します。 Json データの形式は Python に固有のものではないため、他のプログラミング言語を使用している人々と共有できます。これは便利で習得が簡単な軽量形式です。
JSON (JavaScript Object Notation) 形式は、もともと JavaScript 用に開発されましたが、その後、多くの言語で使用される一般的な形式になりました。
json.dump()とjson.load()を使用します
json.dump() は、保存するデータとデータの保存に使用できるファイル オブジェクトという 2 つの実際のパラメーターを受け取ります。
- 一連の数値を保存するプログラム json.dump()
- 数値をメモリに読み込むプログラム json.load()
10.6.2 ユーザー生成データの保存と読み取り
json.dumpとjson.loadはそれぞれデータの保存と読み込みに一緒に使用されます。
10.6.3 リファクタリング
1. コードは正しく実行できますが、コードを特定の作業を完了する一連の関数に分割するなど、さらなる改善が可能です。このプロセスは再構築と呼ばれます。リファクタリングにより、コードがより明確になり、理解しやすくなり、拡張が容易になります。
2. ロジックのほとんどを 1 つ以上の関数に入れます。
10.6.4 概要
1. ファイルの読み取り、ファイル全体の読み取りと 1 行の読み取り、ファイルの操作、オープン、読み取りモード、書き込みモード、追加モード、読み取りプラス書き込みモードを学習しました。
2. 例外処理に try-excel-else コード ブロックを使用する方法。例外タイプ。データの操作、データの保存と読み取り、JSON モジュールの使用、ダンプとロードの使用、コードのリファクタリングの方法を学びます。
10.7 デバッグ
1.主張
表示を支援するために 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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。
