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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

1932閲覧

python ファイル読み込み時にフリーズする

---stax---

総合スコア148

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

1クリップ

投稿2018/05/16 13:20

表題の件で質問させてください

pythonで以下のコードでxlsm形式のファイルを読み込もうとするとフリーズする現象が起こっています
プログラム実行時にタスクマネージャーでpython.exeのプロセスがはね上がっていくのを確認しています

・ファイルの容量は12MB程度あります
・実行環境はwindows,python3.6(Anaconda),jupyter notebookで記述しました
・モジュールはopenpyxl、pandasの両方で試したのですが挙動は変化しませんでした
・.xlsx形式のファイルは問題なく読み込めています
・サンプルとしてマクロは入れていませんが、数値だけを何行か書いた.xlsm形式のファイルを以下のコードで試すと特に問題なく実行されました

同じコード、フリーズしたときに読み込もうとした同じファイルを別PC(PCスペックは同じ)で読み込むと問題なく実行できました
この際、自分が試した時と違いがあったのはvs codeで実行したということだけです

jupyter notebookとvs codeやその他のツールでは処理に差が出るのでしょうか?
ほかのPCでも同様の現象が起きれば読み込もうとしたファイルに問題があるのかと考えたのですが、原因がどこにあるのかわからず悩んでいます
特殊なケースだと思いますが思いつく内容だけでもいいのでアドバイス宜しくお願い致します

python

1#openpyxl 2import openpyxl as op 3book = op.load_workbook(r'C:\Users\Desktop\testbook.xlsm') 4 5#pandas 6#import pandas as pd 7#file = pd.ExcelFile(r'C:\Users\Desktop\testbook.xlsm',encoding='utf8')

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

状況からマクロが含まれていることに問題がありそうです。
セキュリティー設定の関係でダイアログが出力されているがpython側はそれをキャッチできないので処理が宙に浮いていることが考えられます。(別PCで動いたのは、この設定の相違と推察)セキュリティー設定をはずして実行するのも手ですが、openpyxlはマクロを起動できないと記憶しているので、マクロを削除したファイルを作るほうが確実な気がします。

あと、うまくいく保証はないのですが、pd.read_csvはどうでしょう。ただ、この関数はread onlyなので、ニーズを満たさないかもしれません

投稿2018/05/16 19:02

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

---stax---

2018/05/16 22:18

回答ありがとうございます。 セキュリティー設定は全く気にしてませんでした。 大変申し訳ないのですが、仮に設定を変更する場合はセキュリティー設定のどういった部分の変更が必要になるのでしょうか? また、記載が漏れていたのですが、別PCで実行した際のモジュールはopenpyxlではなくpandasでした。 今回はexcelファイルからデータを読み取るだけなので上手くいけばpd.read_csvでも問題ないのでこちらも試させて頂きます。
R.Shigemori

2018/05/17 23:16

私のwin10だと、外部から取得したファイルを操作するとブロックされるので、ファイルプロパティから解除すると承認が求められなくなります。また、excelのマクロに対するセキュリティーは、デフォルトが「中」なので無条件にオープンする「低」にすると承認が求められなくなります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問