SQLの窓

2018年04月30日


Python ドキュメントに沿った、テキストファイル読み込みの理解

ソースコードの文字コード

このサンプルでは、ソースコードは SHIFT_JIS を使用しています。( デフォルトでは、Python のソースコードは UTF-8 でエンコードされているものとして扱われます )

※ Python 内で使用される エンコーディングのリスト

# -*- coding: cp932 -*-

try:
	handle = open(r"C:\Users\sworc\Downloads\社員マスタ.csv", "r", encoding="cp932")
except Exception as err:
	print(err)
	quit()

for method in dir(handle):
	if method == "__iter__":
		print(str(type(handle)) + " は for で使える")
		break
else:
	print(str(type(handle)) + " は for で使えない")

for line in handle:
	print(line,end="")


handle.close()

リテラル

ファイルのパスとして使用しているリテラルに、文字 'r' または 'R' をプレフィックスに持つことができます。そのような文字列は raw strings と呼ばれ、バックスラッシュをリテラル文字として扱いますfor 文

for 文は、反復可能なオブジェクト (iterable object) 内の要素に使用できます。

ここでは、組み込み関数の open 関数で取得した ファイルオブジェクト に対して for を実行します。その前に dir 関数 で取得したメソッド一覧の中に __iter__ がある事を確認しています。オブジェクトの中に __iter__ があれば、反復可能な処理が実装されています。

※ break 文が実行されると、 else 節の処理を実行することなくループを終了します

open で取得された ファイルオブジェクト

open() 関数が返す file object の型はモードに依存します。 open() をファイルをテキストモード ('w', 'r', 'wt', 'rt', など) で開くのに使ったときは io.TextIOBase (特に io.TextIOWrapper) のサブクラスを返します。

io.TextIOWrapper > io.TextIOBase > io.IOBase

※ close メソッドは io.IOBase にあります。

その他

str 関数は、オブジェクトを文字列として返します




posted by lightbox at 2018-04-30 20:17 | Python | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり