「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()関数で、引数にフルパスを指定したい場合、以下のように入力してください。
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です。
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()関数でブックをフルパス指定するには