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

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

新規登録して質問してみよう
ただいま回答率
85.48%
メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Python

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

Q&A

解決済

2回答

869閲覧

画面表示の文章をメールで送りたい

HirokiTomimura

総合スコア26

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Python

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

0グッド

0クリップ

投稿2019/08/05 14:30

編集2019/08/05 14:33

いつも大変お世話になっております

スクレイピングした情報をPCで画面だけではなく
メールで送信したくてプログラムしていますが、うまくいきません。

PC画面上では

PC画面上

12019年8月5日(月) 23:00現在 2 3宜野湾 4116,605円 12名(12組) 9,717円 5 6泡瀬店 791,346円 8名(8組) 11,418円 8 9石川店 1035,527円 3名(3組) 11,842円 11 12うるま店 1355,358円 8名(8組) 6,919円

このように表示できますが
それをメールで送信すると下記のようにCSVデータのような表示で送信されてしまいます。

((('2019年8月5日(月)', '23:00現在', '\n'), '宜野湾店', '116,605円', '12名(12組)', '9,717円'), '泡瀬店', '91,346円', '8名(8組)', '11,418円'), '石川店', '35,527円', '3名(3組)', '11,842円'), 'うるま店', '55,358円',

プログラムはprint文で表示しているのですが
メールでこのようにきちんと改行などを行なうにはどうしたら良いでしょうか?
どうぞよろしくお願いいたします。

プログラムの抜粋です。

html

1 # 店舗名、売上、客数、平均単価 2 data = soup.select('.data-value') 3 uriage = data[0].text 4 kyaku = data[1].text 5 tanka = data[2].text 6 tenpo = tenpo[0].text 7 H = hour[0].text 8 D = date[0].text 9 10 uriage_int=uriage#店舗売上をint化 11 uriage_int=uriage_int.strip('円') 12 uriage_int = int(uriage_int.replace(",",""))#カンマを削除してます 13 uriage_sum = uriage_sum + uriage_int#売上累計 14 15 kyaku_int= int(data[1].select_one(".data-value .unit").previous_sibling)#客数だけ取り出す 16 kyaku_sum = kyaku_sum+kyaku_int 17 18 if d == 0: 19 print (D,H,'\n') 20 message = D,H,'\n' 21 print (tenpo) 22 message = message,tenpo,uriage,kyaku,tanka#メール文章作る 23 print (uriage,kyaku,tanka,'\n') 24 25 message = str(message)#str変換 26

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

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

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

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

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

guest

回答2

0

print出力している文字列をそのまま連結させれば、同じ文字列が出来そうですが。

今はタプルとして足していってるので画面出力とは違う表示になります。

投稿2019/08/05 14:55

meg_

総合スコア10579

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

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

HirokiTomimura

2019/08/05 15:30

ありがとうございます strで変換しながら足してみます。
HirokiTomimura

2019/08/05 18:31

strで変更しながら書き込みましたが、同じような状態でした。
meg_

2019/08/05 21:59

message=D + H + '\n' + uriage + kyaku + tanka + '\n' 上記でどうですか?
HirokiTomimura

2019/08/06 18:29

meg_さん joinという関数を使ってできるようになりました tanka = "".join(map(str, tanka)) どうもありがとうございました。
guest

0

自己解決

python

1 mes = "".join(map(str, mes)) 2 tenpo = "".join(map(str, tenpo)) 3 uriage = "".join(map(str, uriage)) 4 kyaku = "".join(map(str, kyaku)) 5 tanka = "".join(map(str, tanka)) 6 7 mes = mes,"\n\n",tenpo,"\n",uriage,"\n",kyaku,"\n",tanka

このような感じでstrに変更できました。
どうもありがとうございました!

投稿2019/08/06 18:31

HirokiTomimura

総合スコア26

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問