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

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

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

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

Q&A

解決済

1回答

952閲覧

実行するとNoneが出てくる

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

0グッド

0クリップ

投稿2020/08/13 05:04

前提・実現したいこと

https://teratail.com/questions/284286の質問の続きです。
何度かチャレンジしたのですが、解決できず、再度質問させていただきます。
テキストデータから本文を抜き出そうとしています。

if i i.startswith("From: "+ "Sent: "+ "To: " + "Cc: "+ "Subject: ") :

として、本文を抜き出そうとしましたが、「None」が出てきました。
エラーが出ず、どうしたら良いのか困っております。
アドバイスいただけないでしょうか。

テキストデータ

From: AAAAAAAAAA@aaaaaaaa.com Sent: Friday, July 8, 2025 9:25 PM To: BBBBBBBBBB@bbbbbbb.com Cc: DDDDDDDDDD@ddddddd.com Subject: YYYYYYYYYYY AAAAAAA様 お世話になります。 明日の予定はこのようになります。 どうぞよろしくお願いいたします。 BBBBBBBBB ________________________ From: ABBBBBBBBB@bbbbbbbb.com Sent: Friday, July 8, 2025 9:25 PM To: AAAAAAAAAA@bbbbbbb.com Cc: CCCCCCC@ddddddd.com Subject: Re:YYYYYYYYYYY BBBBBBB様 お世話になります。 明日の予定についてお知らせください。 どうぞよろしくお願い板致します。 AAAAAAAAA ________________________ From: FFFFFFFF@bbbbbbbb.com Sent: Friday, July 8, 2025 9:25 PM To: DDDDDDD@bbbbbbb.com Cc: CCCCCCC@ddddddd.com Subject: Re:Re:YYYYYYYYYYY FFFFFFF様 明日の予定について教えてください。 DDDDDDDDD

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

エラーは出ないのですが、Pythonのコンソールに「None」が出ます。
Excelの書き出しには何も記載されません。

該当のソースコード

python3.7

1import xlsxwriter 2data = open('C:/Users/XXXXXXXXXXXX/Desktop/テキストデータ.txt',"r",encoding='utf-8') 3 4wb = xlsxwriter.Workbook('C:/Users/XXXXXXXXXXXX/Desktop/out.xlsx') 5ws1 = wb.add_worksheet('sheet') 6 7row_index = 0 8 9for i in data.readlines(): 10 if i.startswith("From: "): 11 From = i[len("From: "):-1] 12 ws1.write(row_index, 0, From) 13 14 if i.startswith("Sent: "): 15 Sent = i[len("Sent: "):-1] 16 ws1.write(row_index, 1, Sent) 17 18 if i.startswith("To: "): 19 To = i[len("To: "):-1] 20 ws1.write(row_index, 2, To) 21 22 if i.startswith("Cc: "): 23 Cc = i[len("Cc: "):-1] 24 ws1.write(row_index, 3, Cc) 25 26 if i.startswith("Subject: "): 27 Subject = i[len("Subject: "):-1] 28 ws1.write(row_index, 4, Subject) 29 30 if i.startswith("From: "+ "Sent: "+ "To: " + "Cc: "+ "Subject: ") : 31 Message = i[len("From: "+ "Sent: "+ "To: " + "Cc: "+ "Subject: "):-1] 32 ws1.write(row_index, 5, Message) 33 34 if i == "\n" and (From or Sent or To or Cc or Subject or Message): 35 print(f"{From}, {Sent}, {To}, {Cc}\n{Subject}\n{Message}") 36 print("--------------------------------------------") 37 From = None 38 Sent = None 39 To = None 40 Cc = None 41 Subject = None 42 Message = None 43 row_index = row_index + 1 44 45wb.close() 46data.close()

試したこと

以下を書いてみましたが、うまくいきませんでした。

from bs4 import BeautifulSoup mojie=[] cur_pos=0 while True : target_tag = '" "' closing_tag = 'From' start_pos = res[cur_pos:].find(target_tag) end_pos = res[cur_pos:].find(closing_tag) if (start_pos == -1) or (end_pos == -1): break mojie.append(res[cur_pos + start_pos + len(target_tag) : cur_pos + end_pos]) cur_pos = cur_pos + end_pos + len(closing_tag)

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

Windows10

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

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

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

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

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

aokikenichi

2020/08/13 08:56

すみません質問の意味が分かりません if i.startswith("From: "): などとしている方はきちんと取得出来ているのでしょうか。 if i i.startswith("From: "+ "Sent: "+ "To: " + "Cc: "+ "Subject: ") : は仕様にない誤った使い方をしているのでNoneになります c.f. https://itsakura.com/python-startswith if i.startswith("From: "):
退会済みユーザー

退会済みユーザー

2020/08/13 09:48

はい。 if i.startswith("From: "):~if i.startswith("Subject: "):までは取得できています。 それ以降(メールの本文)を抜き出そうとしているのですが、どのようにしたら抜き出すことができるのか、すみません、わからなくて質問させていただきました。申し訳ございません。
aokikenichi

2020/08/13 10:35

では、 if i i.startswith("From: "+ "Sent: "+ "To: " + "Cc: "+ "Subject: ") : これは何なのでしょうか?
guest

回答1

0

ベストアンサー

本文は

Subject:の次の行から
________________________の行の手前

までなのでそれを取ればよいのでは?
やみくもにやられるよりもPythonでのファイル処理、テキスト処理の基本を学ばれた方がよいと思います。

投稿2020/08/13 10:35

aokikenichi

総合スコア2218

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問