第21回.CSV読み込みとopen()関数とwith文
Pythonの標準ライブラリのcsvを使いCSVファイルを読み込みます。
ファイルをオープンするにはopen()関数を使いますが、このときwith文を使うととても便利です。
目次
open()関数
または、ラップするファイルの整数のファイルディスクリプタです。
指定可能なモードは次の表の通りです。
文字 | 意味 |
'r' | 読み込み用に開く (デフォルト) |
'w' | 書き込み用に開き、まずファイルを切り詰める |
'x' | 排他的な生成に開き、ファイルが存在する場合は失敗する |
'a' | 書き込み用に開き、ファイルが存在する場合は末尾に追記する |
'b' | バイナリモード |
't' | テキストモード (デフォルト) |
'+' | open for updating (reading and writing) |
このオプションはテキストモードでのみ使用してください。
Codec | 別名 |
shift_jis | csshiftjis, shiftjis, sjis, s_jis |
shift_jis_2004 | shiftjis2004, sjis_2004, sjis2004 |
shift_jisx0213 | shiftjisx0213, sjisx0213, s_jisx0213 |
utf_32 | U32, utf32 |
utf_32_be | UTF-32BE |
utf_32_le | UTF-32LE |
utf_16 | U16, utf16 |
utf_16_be | UTF-16BE |
utf_16_le | UTF-16LE |
utf_7 | U7, unicode-1-1-utf-7 |
utf_8 | U8, UTF, utf8, cp65001 |
utf_8_sig | ※UTF-8(BOM付き) |
上記以外は、公式ドキュメント - 標準エンコーディング
open()関数の使用例
Windowsのメモ帳で開いた「file01.csv」です。
UTF-8(BOMなし)です。
f = open("./test/file01.csv", "r", encoding="utf-8")
print(f.read())
f.close()
with文
ブロックの前後でコードの初期化と終了処理が実行されます。
基本構文
with expression [as variable]:
with-block
with-blockの実行が終了後に、ブロックが例外を送出する場合であってもクリーンアップコードが実行できます。
with文の使用例
with open("./test/file01.csv", "r", encoding="utf-8") as f:
print(f.read())
print(f.closed)
csvの読み込み
これを使う事で簡単にcsvファイルを扱う事が出来ます。
csvファイルはイテレータ プロトコルをサポートしています。
Windowsのメモ帳で開いた「file01.csv」です。
UTF-8(BOMなし)です。
1行ずつ処理(print)する
import csv
with open("./test/file01.csv", "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
print(row)
2次元配列に取り込む
from pprint import pprint
import csv
with open("./test/file01.csv", "r", encoding="utf-8") as f:
reader = csv.reader(f)
row = [r for r in reader]
pprint(row, width=20)
pprint
今回のサンプルデータであれば数値は適当な数値で(30でも40でも)構いません。
tsvの読み込み
Windowsのメモ帳で開いた「file01.txt」です。
ANSI(shift-jis)です。
from pprint import pprint
import csv
with open("./test/file01.txt", "r", encoding="shift-jis") as f:
reader = csv.reader(f, delimiter="\t")
row = [r for r in reader]
pprint(row, width=20)
スペース区切りなら、delimiter=" "と指定します。
同じテーマ「Python入門」の記事
第16回.Pythonの引数は参照渡しだが・・・
第17回.リスト内包表記
第18回.例外処理(try文)とexception一覧
第19回.import文(パッケージ・モジュールのインポート)
第20回.フォルダとファイルの一覧を取得(os,glob,pathlib)
第21回.CSV読み込みとopen()関数とwith文
第22回.CSV読み書き(csvモジュール)
第23回.pipコマンド(外部ライブラリのインストール)
第24回.エクセルを操作する(openpyxl)
第24回.エクセルを操作する(pywin32:win32com)
第26回.WEBスクレイピング(selenium)
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。