質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

Pythonでのoserrorの対処方法

masayan0617
masayan0617

総合スコア11

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

2回答

0評価

0クリップ

289閲覧

投稿2022/06/08 00:24

編集2022/06/08 13:28

from

import datetime filepath = '‪C:\\Users\\matar\\Documents\\book1-1.xlsx' wb = load_workbook(filename=filepath) ws1 = wb['データ'] ws2 = wb['集計'] startdate=datetime.datetime(int(ws2['B2'].value) , int(ws2['C2'].value) , int(ws2['D2'].value)) enddate=datetime.datetime(int(ws2['B3'].value) , int(ws2['C3'].value) , int(ws2['D3'].value)) lastrow1=ws1.max_row lastrow2=ws2.max_row lastcol2=ws2.max_column values1=[[cell.value for cell in row1] for row1 in ws1] for i in range(7, lastrow2+1): for j in range(2, lastcol2+1): counter = 0 for k in range(1, lastrow1): if values1[k][1] == ws2.cell(row=i, column=1).value: if values1[k][2] == ws2.cell(row=6, column=j).value: torihikidate = values1[k][3] if startdate <= torihikidate <= enddate: kingaku=values1[k][4] counter = counter + int(kingaku) if counter is None: counter=0 ws2.cell(row=i, column=j).value = counter newfilepath = '‪C:\\Users\\matar\\Documents\\book2-1.xlsx' wb.save(newfilepath) コード

Pythonでこのようなプログラムを作りました。Excelのデータを読み込み集計し別で作ってあるExcelの表に出力するプログラムを作ったつもりです。このプログラムを作った際に色々なエラーが出て修正したのですが下のエラーだけはどう直せばいいのか分かりません。

OSError Traceback (most recent call last)
Input In [1], in <cell line: 5>()
2 import datetime
4 filepath = '‪C:\Users\matar\Documents\book1-1.xlsx'
----> 5 wb = load_workbook(filename=filepath)
6 ws1 = wb['データ']
7 ws2 = wb['集計']

File ~\anaconda3\envs\kadai\lib\site-packages\openpyxl\reader\excel.py:315, in load_workbook(filename, read_only, keep_vba, data_only, keep_links)
288 def load_workbook(filename, read_only=False, keep_vba=KEEP_VBA,
289 data_only=False, keep_links=True):
290 """Open the given filename and return the workbook
291
292 :param filename: the path to open or a file-like object
(...)
313
314 """
--> 315 reader = ExcelReader(filename, read_only, keep_vba,
316 data_only, keep_links)
317 reader.read()
318 return reader.wb

File ~\anaconda3\envs\kadai\lib\site-packages\openpyxl\reader\excel.py:124, in ExcelReader.init(self, fn, read_only, keep_vba, data_only, keep_links)
122 def init(self, fn, read_only=False, keep_vba=KEEP_VBA,
123 data_only=False, keep_links=True):
--> 124 self.archive = _validate_archive(fn)
125 self.valid_files = self.archive.namelist()
126 self.read_only = read_only

File ~\anaconda3\envs\kadai\lib\site-packages\openpyxl\reader\excel.py:96, in _validate_archive(filename)
89 msg = ('openpyxl does not support %s file format, '
90 'please check you can open '
91 'it with Excel first. '
92 'Supported formats are: %s') % (file_format,
93 ','.join(SUPPORTED_FORMATS))
94 raise InvalidFileException(msg)
---> 96 archive = ZipFile(filename, 'r')
97 return archive

File ~\anaconda3\envs\kadai\lib\zipfile.py:1248, in ZipFile.init(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps)
1246 while True:
1247 try:
-> 1248 self.fp = io.open(file, filemode)
1249 except OSError:
1250 if filemode in modeDict:

OSError: [Errno 22] Invalid argument: '\u202aC:\Users\matar\Documents\book1-1.xlsx'

自分で調べた限りopen関数を使っているときのOSerrorはファイルの読み込みを失敗している?のかと思いました。なのでこのエラーに対してどう修正をすればいいのか教えてほしいです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

y_waiwai

2022/06/08 01:04

このままではコードが読めないので、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。