ホームページ  >  記事  >  バックエンド開発  >  Pythonの例外とファイル処理の仕組みを詳しく解説

Pythonの例外とファイル処理の仕組みを詳しく解説

WBOY
WBOYオリジナル
2016-08-04 08:55:381425ブラウズ

この記事の例では、Python の例外とファイル処理メカニズムについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

1 例外処理

Pythonでの例外の使用
試してみてください

を除いて ついに
そして、excel の後に else を続けることもできます。

例外を発生させるには、raise を使用します

実際の Python プログラムの実行中に、スローされた例外が処理されない場合、Python IDE に赤い情報が表示され、プログラムが終了します。

これまでにいくつかの異常を確認しました:

使用されたキーが辞書に存在しない場合、KeyError 例外が発生します。例:

リーリー

リストに存在しない値を検索すると、ValueError 例外が発生します。

リーリー

に対応します。添字を使用してリスト内の要素を参照すると、IndexError 例外が生成されます。例: 。

リーリー

存在しないメソッドを呼び出すとAttributeError例外が発生します。 存在しない変数を参照すると、NameError例外が発生します。

強制を行わずにデータ型を混合すると、TypeError 例外が発生します。

ファイル操作エラーによる IOError など:

リーリー

上記のコードに注意してください:
open はファイルを開くために使用される組み込み関数です。

tryExcept の後に else ステートメントを続けることができます。指定された例外がキャッチされなかった場合、else ステートメントが実行されます。

モジュールをインポートするとき、モジュールが存在しない場合、ImportError例外が発生します。

独自の例外クラスを定義する場合は、組み込みの Exception クラスを継承させて、例外をスローする必要がある場合に raise を使用することもできます。

2 ファイルオブジェクトの操作

前に述べたように、open はファイルを開いてファイル オブジェクトを返すために使用できます。その関数宣言は次のとおりです。

リーリー 3 つのパラメータがあります (最後の 2 つはオプションです)。例:

リーリー

2 番目のパラメータは「rb」として指定されます。このパラメータがデフォルトの場合、ファイルをテキスト モードで開くことを意味します。
開けない場合、開くと IOError 例外が発生します。

name 属性と mode 属性を使用してファイル オブジェクトをクエリできるようになりました。例:

リーリー

ファイルを開いた後は、例:

の読み取りと書き込みが可能です。

リーリー

現在地を確認

リーリー

最初のパラメータはオフセット値です。2 番目のパラメータは 0.1.2 の 3 つの値をとり、それぞれ開始、現在位置、終了を表します。

検索されたアドレスが正しくない場合 (範囲を超えている場合など)、IOError 例外が発生します。
したがって、このステートメントはファイル ポインターをファイルの最後に配置します。

リーリー

これにより、ファイルの長さが出力されます。

リーリー

ファイルの最後の 128 バイトを読み取り、読み取ったデータを文字列として返します。データを読み取るとき、ファイル ポインタも後方に移動します。

readのパラメータは、読み込む最大バイト数を示します。このパラメータは、ファイルの最後まで読み込むことを意味します。

読み取り中にエラーが発生した場合(ディスク上の不良セクターやネットワークの切断など)、IOError例外が発生します。

リーリー

ファイルが閉じられているかどうかを確認してください。

リーリー

使用されなくなったファイルは閉じる必要があります。既に閉じられたファイルは再度閉じることができます (例外は発生しません)。

リーリー

f を閉じた後に、seek() などの操作を実行すると、ValueError 例外が発生します。 ファイルの書き込み方法は読み取りと似ていますが、たとえば、次のようにファイルを開く必要があります。

リーリー

「w」は書き込み用に開くことを意味します。このように、ファイルが存在しない場合でも、既存のファイルは上書きされます。 リーリー

file() でファイルを開くことは、open() で開くことと同じなので、 print:
「ABC」

3 のループ


Python では、for はリストを走査するために使用されます。例:

リーリー

これにより、ループ内で li の要素の値を順番に受け取ることができます。

...印刷してください ...

1

2

3

この出力は print "n".joni(li) と同じです。 他の言語のように数えるために for を使いたい場合は、次の方法を使用できます:

リーリー

辞書を調べるには for を次のように使用します。
リーリー

上記の出力結果は print "n".join(["%d = %s" % (k, v) for k, v in d.items()]) と同じです。


4 sys.modules の使用


Python では、モジュールは sys モジュールで定義されるグローバル辞書オブジェクトです。

モジュールをインポートすると、sys.modules.

に見つかります。
すべてのクラスには、組み込みの「クラス属性」: __module__ があります。その値は、クラスを定義するモジュールの名前です。

5 ディレクトリの操作

os.path によって参照されるモジュール内のファイルとディレクトリを操作するための関数がいくつかあります。例:

リーリー

这个join函数用来将一个或多个字符串构造成一个路径名.

'c:\music\mahadeva.mp3'
>>> os.path.expanduser("~")

expanduser函数用'~'作参数时. 返回当前用户根目录.
'c:\Documents and Settings\mpilgrim\My Documents'

>>> (filepath, filename) = os.path.split("c:\music\a.mp3")

split函数用来将一个路径名分成目录名和文件名. 它返回的是一个tuple. 用返回的tuple对(filepath, filename)赋值.

>>> filepath
'c:\music'
>>> filename
'a.mp3'
>>> (a, b) = os.path.splitext("a.mp3")

类似的. 这个splitext用来将一个全文件名分成 文件名 和 扩展名 两部分.

>>> a
'a'
>>> b
'.mp3'

列出目录用:

>>> os.listdir("c:\")

这个函数将返回一个字符串list. 包括所有的文件和文件夹的名字.

['boot.ini', 'CONFIG.SYS', 'AUTOEXEC.BAT', 'java', 等]

要判断一个字符串路径到底是一个文件还是一个文件夹. 用os.path模块中的 isfile() 或 isdir(). 如:

>>> [f for f in os.listdir("c:") if os.path.isdir(os.path.join("c:", f))]

这样就打印出c中所有文件夹名构成的list.

如果要在目录操作中使用通配符. 可以如下:

>>> import glob

要先导入 glob 模块

>>> glob.glob('c:\music\*.mp3')

则返回的list中包含了该目录下所有的 .mp3 后缀的文件名.

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

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