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

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

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

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

Q&A

1回答

855閲覧

Excel,Python,初心者,謎のエラー,わかる方

GYMON

総合スコア4

Python

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

0グッド

0クリップ

投稿2021/12/08 13:29

編集2021/12/08 14:00

仕事でexcelとpythonを使った業務効率化を使おうと今日から勉強を始めたのですが、恥ずかしながら初手からつまずいております。

pandsとopenoyxlをインストールしたうえで下記のようなプログラムを実行すると「sample1.xlsx」というファイルが作成されて開くとプログラム通りの内容が記述されていました。

ここまではいいのですが、再度実行するとエラーになりました。

対照実験を行ったときに原因が「sample1のエクセルファイルが存在すること」だと考えました。

私はこのプログラムをもとに内容を書き換えて、自身のプログラムを作りたいのですが、新規保存がデフォルトになっっているとその実現が大変困難です。

お知恵をお貸しいただけますと幸いです。

エラー文:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

python

1import openpyxl as px 2import random 3 4# excelのシートの中のA1,B1,C1,D1にDay,Product,Place,Feeと書き込む 5wb = px.Workbook() 6ws = wb.active 7sheet = wb.worksheets[0] 8ws.title = 'sheet_1' 9ws['A1'] = '月日' 10ws['B1'] = '製品' 11ws['C1'] = '支店' 12ws['D1'] = '利益' 13 14# B列に製品1と製品2のどちらかをランダム生成する 15for k in range(2, 501): 16 a = ('製品1', '製品2') 17 ws['B'+ str(k)] = random.choice(a) 18 19# C列に企業1と企業2のどちらかをランダム生成する 20for m in range(2, 501): 21 b = ('支店1', '支店2') 22 ws['C'+ str(m)] = random.choice(b) 23 24# D列に80~155の範囲の値の中から数字をランダムに生成する 25for n in range(2, 501): 26 ws['D'+ str(n)] = random.randint(10000, 100000) 27 28#ランダムに生成する月日の範囲を2020-1-1~2020―12-17と決める 29from datetime import timedelta 30from datetime import date 31from random import randrange 32import random 33start_date = date(2020, 1, 1) 34end_date = date(2020, 12, 17) 35 36time_between_dates = end_date - start_date 37days_between_dates = time_between_dates.days 38random_number_of_days = random.randrange(days_between_dates) 39random_date = start_date + timedelta(days=random_number_of_days) 40 41 #A列に2020―1-1~2020―12―17の範囲でランダムに生成する 42for p in range(2, 500): 43 start_date = date(2020, 1, 1) 44 end_date = date(2020, 12, 17) 45 46 time_between_dates = end_date - start_date 47 days_between_dates = time_between_dates.days 48 random_number_of_days = random.randrange(days_between_dates) 49 random_date = start_date + timedelta(days=random_number_of_days) 50 51 ws['A'+ str(p)] = (random_date) 52 #セルの大きさ調整 53 sheet.column_dimensions['A'].width = 13 54 55#変更内容を保存する 56wb.save('sample1.xlsx') 57

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

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

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

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

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

BeatStar

2021/12/08 13:37

エラーが出たのならメッセージぐらい読みましょう。エラ―メッセージは暴言ではなく、「インタプリタ等からのメッセージ」です。メッセージにヒントが隠されています。
GYMON

2021/12/08 13:51

恥ずかしながらこういった類のものにおらずエラーが読めません。 よければ読み方を教えていただけないでしょうか?
BeatStar

2021/12/08 13:57 編集

いや、そのままですよ。まずはせめてエラ―メッセージをコピペで質問本文に追記してください。 質問は編集できるので編集しましょう。
GYMON

2021/12/08 14:00

失礼いたしました。追記させていただきました。
bsdfan

2021/12/09 05:49 編集

エラーが発生しているコードと質問に挙げられているコードは全く同じものですか? 実際は、wb.save(...) をディレクトリ(フォルダ)つきのパスで書いたりしていませんか?
guest

回答1

0

Pythonでパスを指定した際に発生するunicode errorを解消できませんと同じ問題のように思われます。

Pythonのプロンプトである>>> が表示されているところで、

Python

1>>> python .\test\test.py

のようなことを実行するとこのエラーが起きます。
ファイルを指定してPythonを動かすときはコマンドプロンプトかPowerShellから行ってください。

投稿2021/12/08 15:05

ppaul

総合スコア24670

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

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

GYMON

2021/12/09 04:19

大変お恥ずかしいのですが初心者故、もう少しばかり詳細にするべき動作を説明していただけると助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問