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') >>> タイプ(シェルフファイル) >>> シェルフファイル['猫'] ['ゾフィー'、'プーカ'、'サイモン'】 >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 サイトの他の関連記事を参照してください。

PythonスクリプトがUNIXシステムで実行できない理由には、次のものが含まれます。1)CHMOD XYOUR_SCRIPT.PYを使用して実行権限を付与する不十分な権限。 2)shebangラインが正しくないか欠落している場合、#!/usr/bin/envpythonを使用する必要があります。 3)環境可変設定が誤っていない場合、OS.Environデバッグを印刷できます。 4)間違ったPythonバージョンを使用して、Shebangラインまたはコマンドラインでバージョンを指定できます。 5)仮想環境を使用して依存関係を分離する依存関係の問題。 6)構文エラー、python-mpy_compileyour_script.pyを使用して検出します。

Pythonアレイの使用は、リストよりも大量の数値データの処理に適しています。 1)配列を保存するメモリを保存します。2)アレイは数値的な値で動作するのが高速です。3)アレイフォースタイプの一貫性、4)アレイはCアレイと互換性がありますが、リストほど柔軟で便利ではありません。

listSareのより良い前提条件とmixdatatypes、whilearraysares優れたスナリカル計算砂の砂を大きくしたデータセット。

numpymanagesmemoryforlargearrayseffictificleusing biews、copies、andmemory-mappedfiles.1)rewsinging withotingcopying、directmodifying theoriginalArray.2)copiescanbecreatedwithcopy()methodforpreservingdata.3)Memory-MapplehandLemassiutasedatasetasedatasetasetasetasetasetasedas

listsinpythondonotrequireimportingamodule、whilearrays fromthearraymoduledoneedanimport.1)listsarebuiltin、versatile、andcanholdmixeddatypes.2)araysaremoremory-efficient-fornumerumerumerumerumerumerdatabutでき、対象となるンドベフェフサメタイプ。

Pythonlistscanstoreanydatatype,arraymodulearraysstoreonetype,andNumPyarraysarefornumericalcomputations.1)Listsareversatilebutlessmemory-efficient.2)Arraymodulearraysarememory-efficientforhomogeneousdata.3)NumPyarraysareoptimizedforperformanceinscient

heouttemptemptostoreavure ofthewrongdatatypeinapythonarray、yure counteractypeerror.thisduetothearraymodule'sstricttypeeencultionyを使用します

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

ホットトピック









