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

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

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

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

Q&A

解決済

1回答

735閲覧

PythonでExcelのファイル作成について

nyankobc

総合スコア2

Python

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

0グッド

0クリップ

投稿2021/04/22 05:35

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
pythonでexcelの自動化を行っております。
https://www.youtube.com/watch?v=-5v7CuXm7Ns&t=140s という動画を見て実行しています。
作ったExcelをファイルに書き出しをしようとしています。
(動画の15:40あたり)

発生している問題・エラーメッセージ

File "<ipython-input-37-9bd67bdb397c>", line 3 df_order_company.to_excel(export_file_path+'\' +i+ '.xlsx') ^ SyntaxError: EOL while scanning string literal

該当のソースコード

python

1for i in company_name: 2 df_order_company =df_order[df_order['会社名']==i] 3 df_order_company.to_excel(export_file_path+'\' +i+ '.xlsx')

試したこと

SyntaxError: EOL while scanning string literal
を調べたところ’が抜けていることがあるとみて
見直しましたがわかりません。

補足情報(FW/ツールのバージョンなど)

Windowsで行っています。
始めたばかりの初心者で大幅に間違っているかもしれませんが
教えて頂けると幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

'\' が原因です。pythonでは \はエスケープシーケンスであるため、\' でシングルクォート文字列を表すため、構文エラーとなっています。

現在のコードを生かすのであれば \ とすることで動作するかと思います。

https://docs.python.org/ja/3/reference/lexical_analysis.html#string-and-bytes-literals

ただ、PATHの場合、文字列結合ではなく、専用の関数が用意されているので使用した方が良いでしょう。

https://docs.python.org/ja/3/library/os.path.html#os.path.join

python

1import os 2for i in company_name: 3 df_order_company =df_order[df_order['会社名']==i] 4 path = os.path.join(export_file_path, i + '.xlsx') 5 df_order_company.to_excel(path)

フォルダを作成

コメントへの回答コードです(詳細はドキュメントを参照してください。)

python

1from pathlib import Path 2export_file_path = 'C:\Users\user\NewFolder.output' 3Path(export_file_path).mkdir(exist_ok=True)

https://docs.python.org/ja/3/library/pathlib.html#pathlib.Path.mkdir

投稿2021/04/22 05:55

編集2021/04/23 06:08
yamap55

総合スコア1376

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

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

nyankobc

2021/04/22 08:01

yamap55さん お答え頂きありがとうございます。 /にそんな意味があったのは知りませんでした。勉強不足でした。 もう一点質問させてください。 import os for i in company_name: df_order_company =df_order[df_order['会社名']==i] path = os.path.join(export_file_path, i + '.xlsx') df_order_company.to_excel(path) を入れたところ、 FileNotFoundError  [Errno 2] No such file or directory: 'C:\Users\user\NewFolder.output\株式会社Z.xlsx' と出てきました。 これはNewFolderが見つからないよということだと思うのですが、 jupiterやexcelを作成してあるところと同じところに作成してあるのですが、作成場所がいけないのでしょうか。 During handling of the above exception, another exception occurred:
yamap55

2021/04/22 09:23

提示されているコードだけでは何とも言えませんが、フォルダがないとFileNotFoundErrorになるのはよくあるケースなので、「C:\Users\user\NewFolder.output」というフォルダが存在しないのだと思います。 そうでないのであれば、コード全てを「質問文」に追記する事で何かわかるかもしれません。
nyankobc

2021/04/23 02:01

yamap55さん ありがとうございます。 最初に #path import_file_path = 'C:\Users\user\NewFolder\MyPandas/sample.xlsx' excel_sheet_name = '発注管理表' export_file_path = 'C:\Users\user\NewFolder.output' と書いてあります。なので、 C:\Users\user\ にフォルダを作ろうと思うのですが、 ローカルディスクにフォルダを作ってもC:\Users\user\に作成されたとはならず。どこに作成をすればよいのでしょうか。 pythonではなく初歩的な質問をしてしまい申し訳ありません。
yamap55

2021/04/23 06:03

ローカルディスクが何を指すのかわかりませんが、どこにフォルダ作ってもそのフォルダのPATHをexport_file_pathに指定すれば良いです。 どうしても 'C:\Users\user\NewFolder.output' というフォルダを作りたいのであれば、フォルダがない場合にフォルダが作るコードを回答に追記しましたので参考にしてください
nyankobc

2021/04/23 07:11

何度もすみませんでした。 無事。解決することが出来ました! 実行できてとても嬉しいです。 丁寧にわかりやすく教えて頂き勉強するところを 新たに学ぶことができました。本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問