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

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

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

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

解決済

エラーの解決方法がわかりません。BadZipFile: File is not a zip file     Python

abcabc
abcabc

総合スコア61

Python

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

2回答

0評価

0クリップ

4275閲覧

投稿2021/10/03 06:51

編集2021/10/03 08:00

下記内容で、エラーが出力されます。ZIPファイルを作成するまでの部分を出力してもエラーは出ていません。
「これだけだとエラーは出ません」
lists2 = [df1[0],df2[0]]
all_list2 = []
for i in lists2:
all_list2.append(list(i))

folder_list2 = list(range(1,3)) #rangeにて値を取得
so_dict2 = dict(zip(folder_list2,all_list2))
この部分だけ出力する時にはエラーはでないのですが、解決方法がわかりません。
お手数おかけしますが、ご教授お願いいたします。

Python

import openpyxl import datetime import os #テスト用に1,2フォルダのみ抜粋 lists2 = [df1[0],df2[0]] all_list2 = [] for i in lists2: all_list2.append(list(i)) folder_list2 = list(range(1,3)) #rangeにて値を取得 so_dict2 = dict(zip(folder_list2,all_list2)) hh = datetime.date.today().year#シート名取得のための記述 sheet_name = (str(hh - 1992) + '期')#コピー先シート名取得 wb1 = openpyxl.load_workbook('C:\Users\**\OneDrive\デスクトップ\テスト用\本番1.xlsm',data_only=True)#コピー元ブック読込 ws1 = wb1['検針表 (2)']#コピー元シート読込 for key, value in so_dict2.items():#コピー先ファイル取得 for v in value: wb = openpyxl.load_workbook(f'C:\Users\**\OneDrive\デスクトップ\テスト用\個別表2\{key}\{v}.xlsx') ws = wb[sheet_name]#コピー先シート取得 qq = ws1.cell(row = 1,column = 5).value ws.cell(row = ws.max_row,column = 3, value = qq) wb.save(f'C:\Users\abcab\OneDrive\デスクトップ\テスト用\個別表2\{key}\{v}.xlsx') 「エラー」 --------------------------------------------------------------------------- BadZipFile Traceback (most recent call last) <ipython-input-13-c2e42be596d5> in <module> 19 for key, value in so_dict2.items():#コピー先ファイル取得 20 for v in value: ---> 21 wb = openpyxl.load_workbook(f'C:\Users\**\OneDrive\デスクトップ\テスト用\個別表2\{key}\{v}.xlsx') 22 ws = wb[sheet_name]#コピー先シート取得 23 qq = ws1.cell(row = 1,column = 5).value ~\anaconda3\lib\site-packages\openpyxl\reader\excel.py in load_workbook(filename, read_only, keep_vba, data_only, keep_links) 313 314 """ --> 315 reader = ExcelReader(filename, read_only, keep_vba, 316 data_only, keep_links) 317 reader.read() ~\anaconda3\lib\site-packages\openpyxl\reader\excel.py in __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 ~\anaconda3\lib\site-packages\openpyxl\reader\excel.py in _validate_archive(filename) 94 raise InvalidFileException(msg) 95 ---> 96 archive = ZipFile(filename, 'r') 97 return archive 98 ~\anaconda3\lib\zipfile.py in __init__(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps) 1267 try: 1268 if mode == 'r': -> 1269 self._RealGetContents() 1270 elif mode in ('w', 'x'): 1271 # set the modified flag so central directory gets written ~\anaconda3\lib\zipfile.py in _RealGetContents(self) 1334 raise BadZipFile("File is not a zip file") 1335 if not endrec: -> 1336 raise BadZipFile("File is not a zip file") 1337 if self.debug > 1: 1338 print(endrec) BadZipFile: File is not a zip file

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Python

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