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 と呼ばれ、バックスラッシュをリテラル文字として扱います。

最終更新日時:2019-04-08 07:08

[スポンサードリンク]

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

TrackBack:3

TrackBack URL
openpyxl.Workbook()でブックを作成した場合のシート名とオブジェクト名 from インストラクターのネタ帳
openpyxl.Workbook()でブックを作成した場合、特に指定しなければ、シート名は「Sheet」で、オブジェクト名は「Sheet1」になります。
OpenPyXLで全シート名を取得するget_sheet_names()使用時のDeprecationWarning from インストラクターのネタ帳
OpenPyXLで、get_sheet_names()を使用すると表示されるDeprecationWarningについての記事です。
OpenPyXLで拡張子に.xlsを指定して保存すると? from インストラクターのネタ帳
OpenPyXLで拡張子を.xlsにして保存しても、拡張子が.xlsになるだけで、ファイルトしてはXML準拠のExcelファイルとなります。

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

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

検索


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

.