18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

新入社員の定番の役割をPythonで効率化してみた

Posted at

こんにちは。
新入社員の定番の役割、電話応対をPythonで効率化してみました。

電話を取り次ぐ相手が自席にいないのはよくあること。そのときは電話があったことをメールで伝えるわけですが、決まりきった文面を毎回書くのは実際面倒。ということで本文と件名を作るプログラムを書いてみました。

今回やること

  • 電話があったことを伝える伝言メールの本文作成
  • 過去に電話があった社名・名前を基に電話番号サジェスト

※ メール作成・送信は手動です('ω')

こんな感じのtxtファイルを出力します。
1行目が件名。それ以降が本文です。

TELmemo.txt
【伝言メモ】foobar様

hogeさん

お疲れ様です。【自分の名前】です。
fooのbar様よりお電話がありました。
折り返しをお願い致します。
TEL 000-000-000

以下、ソースコードです。

TELmemo.py
#coding:utf-8
import time
from datetime import datetime
import csv
import pandas as pd
import os.path

def existsLog():
    # ログファイルが存在しない場合は作成する
    if os.path.exists("telLog.csv") == False:
        f = open('telLog.csv','w')
        writer = csv.writer(f,lineterminator='\n')
        header = []
        header.append('To')
        header.append('From')
        header.append('incNm')
        header.append('Tel')
        header.append('Time')
        writer.writerow(header)
        f.close()

# 入力された名前, 会社名を持つログから電話番号をサジェストするメソッド
def suggestTelNo(df,nm,incNm):
    telNo = ""
    select = ""
    for index,row in df.iterrows():
        if row['From'] == nm and row['incNm'] == incNm:
            print("もしかして、この電話番号? : ",end="")
            print(row['Tel'])
            print("y/n: ",end="")
            select = input()
            telNo  = row['Tel']
            break
    if select == 'y':
        return telNo
    else:
        return None

# ログを出力するメソッド
def mkLog(To,From,incNm,telNo):
    time = datetime.now()
    timeStr = time.strftime("%Y.%m.%d %H:%M:%S")
    info = [To,From,incNm,telNo,timeStr]

    with open('telLog.csv','a') as f:
        writer = csv.writer(f,lineterminator='\n')
        writer.writerow(info)
    f.close()

if __name__ == "__main__":

    f = open('TELmemo.txt','w')

    ln1 = "\nお疲れ様です。【自分の名前】です。"
    ln2_1 = ""
    ln2_2 = "様よりお電話がありました。"
    ln3 = "折り返しをお願い致します。"
    ln4 = "TEL "

    print("---伝言メールの本文作ってくれるやつ---")
    print("---伝言履歴---")

    existsLog()

    # 電話番号サジェスト用データフレーム
    df = pd.read_csv('telLog.csv',encoding='UTF-8')
    del df['Time']
    # 伝言履歴を表示する
    print(df)

    print("\n※ 名前の入力は敬称略。")

    print("誰宛て?:",end="")
    to = input()
    print("どこから?")
    print("社名:",end="")
    incNm = input()
    print("名前:",end="")
    nm = input()
    ln2 = incNm + ln2_1 + nm + ln2_2

    # 入力された名前, 会社名を持つログから電話番号をサジェストする処理
    tel = suggestTelNo(df,nm,incNm)
    # 初めて掛かってきた場合は電話番号を入力
    if tel is None:
        print("TEL:",end="")
        tel = input()
        ln4 = ln4 + tel
    # 過去に掛かってきている場合は電話番号を表示
    else:
        print("TEL:" + tel)
        ln4 = ln4 + tel
    # ログを出力
    mkLog(to,nm,incNm,tel)

    # 件名を作成
    sub = "【伝言メモ】" + incNm + nm + "" + '\n'
    # 本文に入れる文言を分割・格納する
    msg = (sub,to+"さん",ln1,ln2,ln3,ln4)

    # 本文を1行ずつtxtファイルに書込み・画面に出力
    for line in msg:
        print(line)
        f.write(line + '\n')

    f.close()
    # 3秒間だけ待ってやる(内容確認のため)
    time.sleep(3)
    exit()

18
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?