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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

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

Q&A

解決済

2回答

3667閲覧

PythonでSyntaxError: invalid syntaxがでる原因について

gakuseipython

総合スコア3

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

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

0グッド

0クリップ

投稿2020/10/14 08:52

編集2020/10/14 08:57

前提・実現したいこと

anaconda + VS codeでPythonの勉強を本日から始めました。

マーケティング・パイソンという本で、「excelのルーチンワークを自動化する」という箇所で、以下のコードを紹介していたのでそのまま手入力でコードを打ち込んでみました。
すると、globの箇所まではきちんと動作したのですがopenpyxlから動かず、答えのコードをそのままコピペして実行しても同様の事象が起きております。

SyntaxError: invalid syntaxが構文ミスだということは調べてわかったのですが、コピペしても同様の事象が起こるので、理由がわからず困惑しております。

内容は、フォルダディレクトリの/task2/data/以下でExcelファイルがたくさん入っているものを、/task2/output/にまとめて新規ファイルを作成するというものです。

初心者なもので説明もよくないかもしれませんが、申し訳ございませんがわかる方いればお答えいただけますと幸いです。

何卒宜しくお願い致します。

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

>>> C:/ProgramData/Anaconda3/python.exe c:/Users/[ユーザー名]/OneDrive/ドキュメント/python/tutorial/task2/task2_excel-merge.py File "<stdin>", line 1 C:/ProgramData/Anaconda3/python.exe c:/Users/[ユーザー名]/OneDrive/ドキュメント/python/tutorial/task2/task2_excel-merge.py ^ SyntaxError: invalid syntax

該当のソースコード

python

1import glob 2 3filelist = glob.glob('./task2/data/*.xlsx') 4 5import openpyxl 6 7out_workbook = openpyxl.Workbook() 8out_sheet = out_workbook.active 9out_sheet.title = '月報一覧' 10 11out_sheet['A1'].value = '報告日' 12out_sheet['B1'].value = '支店' 13out_sheet['C1'].value = '担当者' 14out_sheet['D1'].value = '売上目標(千円)' 15out_sheet['E1'].value = '売上実績(千円)' 16out_sheet['F1'].value = '差異(千円)' 17out_sheet['G1'].value = '達成率(%)' 18 19for i, file in enumerate(filelist): 20 workbook = openpyxl.load_workbook(file, data_only=True) 21 sheet = workbook['業務報告書'] 22 23 report_date = sheet['X1'].value 24 office = sheet['X2'].value 25 person = sheet['X3'].value 26 sales_goal = sheet['H9'].value 27 sales_result = sheet['H10'].value 28 sales_diff = sheet['H11'].value 29 sales_percentage = sheet['H12'].value 30 31 out_sheet.cell(row=i+2, column=1).value = report_date 32 out_sheet.cell(row=i+2, column=2).value = office 33 out_sheet.cell(row=i+2, column=3).value = person 34 out_sheet.cell(row=i+2, column=4).value = sales_goal 35 out_sheet.cell(row=i+2, column=5).value = sales_result 36 out_sheet.cell(row=i+2, column=6).value = sales_diff 37 out_sheet.cell(row=i+2, column=7).value = sales_percentage 38 39 out_sheet.cell(row=i+2, column=7).number_format = '0%' 40 out_sheet.cell(row=i+2, column=1).number_format = 'yyyy年mm月dd日' 41 42out_filename = './task2/output/月報一覧_202001.xlsx' 43out_workbook.save(out_filename)

試したこと

特になし

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

anaconda Python 3.8
VS CODE 1.50.0

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

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

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

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

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

guest

回答2

0

>>>が表示されているということは、Pythonを起動したうえで
C:/ProgramData/Anaconda3/python.exe c:/Users/[ユーザー名]/OneDrive/ドキュメント/python/tutorial/task2/task2_excel-merge.py
を実行していると思います。
そうではなくて、ターミナル(コマンドプロンプト)上で
C:/ProgramData/Anaconda3/python.exe c:/Users/[ユーザー名]/OneDrive/ドキュメント/python/tutorial/task2/task2_excel-merge.py
を実行してください。

投稿2020/10/14 09:30

can110

総合スコア38234

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

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

0

ベストアンサー

コードには問題はありませんが、コマンドプロンプト上で直接C:/ProgramData/Anaconda3/python.exe c:/Users/[ユーザー名]/OneDrive/ドキュメント/python/tutorial/task2/task2_excel-merge.pyを入力してください。

PythonのShellは、コマンドプロンプトのように、ファイルを実行したりするところではなく、そこでは対話モードといってプログラムを1行書いて、命令するみないな感じのをやります。
対話モードの詳細▼
https://www.javadrive.jp/python/ini/index2.html

投稿2020/10/14 09:16

編集2020/11/22 03:36
HaruruYaki

総合スコア16

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

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

gakuseipython

2020/10/14 09:19

回答ありがとうございます。 すみません、わかってないのでもう少し詳しく説明いただけますでしょうか?
HaruruYaki

2020/10/14 09:26

「C:/ProgramData/Anaconda3/python.exe c:/Users/[ユーザー名]/OneDrive/ドキュメント/python/tutorial/task2/task2_excel-merge.py」とありますが、これはコマンドプロンプトで直接入力したものでしょうか?
gakuseipython

2020/10/14 09:28

ではないです、エラーメッセージに一緒に表示されていたものです。
HaruruYaki

2020/10/14 09:29

回答を編集します。少々お待ちください。
gakuseipython

2020/10/14 09:37

今試してみたところ、解決しました。 ありがとうございます。 不勉強で大変恐縮ですが、どういう理由でエラーになっていたのかお教えいただけますでしょうか?
HaruruYaki

2020/10/14 09:55

PythonのShellはファイルを実行するなどのコマンドプロンプトとは違います。 PythonのShellは対話モードといって、そこでプログラムを一行ずつ入力するのです。 対話モードの詳細は https://www.javadrive.jp/python/ini/index2.html を見てください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問