Home » Python » OpenPyXLの使い方 » openpyxl.load_workbook()関数でブックをフルパス指定するには

openpyxl.load_workbook()関数でブックをフルパス指定するには

動作検証バージョン:Windows 10 + Python 3.7.3 + OpenPyXL 2.6.2

「openpyxl フルパスでのワークブック指定 エクセルファイルの開き方」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。

Cドライブのtempフォルダーに、foo.xlsxが存在するときに、

import openpyxl
wb = openpyxl.load_workbook('C:\temp\foo.xlsx')

のようなコードを実行したものの、

OSError: [Errno 22] Invalid argument: 'C:\temp\x0coo.xlsx'

とエラーになってしまった方による検索ではないかと、推測しています。

openpyxl.load_workbook()関数でブックをフルパス指定するサンプル1

openpyxl.load_workbook()関数で、引数にフルパスを指定したい場合、以下のように入力してください。

import openpyxl
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')

ポイントは「\\」です。

Pythonに限らず「\」(バックスラッシュ・円マーク)には注意が必要です。プログラミングでは「\」が、エスケープ文字として扱われることが多いためです。

フォルダーの区切り文字としての「\」を入力するには、「\\」と入力する必要があります。

IDLEのShellウィンドウでも「\\」を確認しましょう

エスケープシーケンス「\\」はPython全般に関わる話ですから、簡単なコードをIDLEのShellウィンドウで実行して確認しておきましょう。

print('C:\\temp\\')

を実行すれば文字列「C:\temp\」がShellウィンドウに出力され、

print('C:\temp\')

を実行した場合には、「SyntaxError: EOL while scanning string literal」とシンタックスエラーが発生します。

openpyxl.load_workbook()関数でブックをフルパス指定するサンプル2

エスケープ文字やエスケープシーケンスについて理解した上で、「\\」と入力するのが面倒な場合、以下のような入力でもOKです。

import openpyxl
wb = openpyxl.load_workbook(r'C:\temp\foo.xlsx')

2.4.1. 文字列およびバイト列リテラルに、以下の記述があります。

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

最終更新日時:2023-05-23 04:02

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » openpyxl.load_workbook()関数でブックをフルパス指定するには

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.