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:0

TrackBack URL

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

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

.