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

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

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

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

Q&A

0回答

416閲覧

対話システムでユーザデータごとにファイルを格納して、そのファイルを検索できるようにしたいです。

oshoring

総合スコア1

Python 3.x

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

0グッド

0クリップ

投稿2020/09/17 07:10

編集2020/09/17 14:09

前提・実現したいこと

対話システムでユーザデータを作ってユーザデータごとに分けて格納する機能を作りました。
さらにユーザデータのファイルを検索して、ファイル内にある、対話ログを使えるようにしたいです。

ファイルを開く機能を実装中に以下のエラーメッセージが発生しました。

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

Traceback (most recent call last): File "demo.py", line 78, in <module> hatsuwa_wadai,kanrenbun=google_kensaku.in2kanrenbun(hatsuwa_wadai,words,u) File "google_kensaku.py", line 288, in in2kanrenbun wadai = wadai_suitei(keys,words) File "google_kensaku.py", line 259, in wadai_suitei with open('log/{0}{1}_log.txt'.format(dt,name), 'r',encoding='utf-8') as f: NameError: name 'name' is not defined

該当のソースコード

google_kensaku.py
![イメージ説明![イメージ説明]イメージ説明イメージ説明イメージ説明イメージ説明イメージ説明

Python

1 2demo.py 3 4import maeshori 5import MeCab_mrphs 6import make_sentence_list 7import reply 8import google_kensaku 9import datetime 10from zatsuyou import * 11 12dt_now = datetime.datetime.now() 13dt = datetime.date.today() 14print('S:名前を入力してください') 15name = input('U:') 16print('S:こんにちは') 17print('S:何かお話ししましょうか') 18path = 'log/{0}{1}_log.txt'.format(dt,name) 19with open(path, mode='a') as f: 20 f.write("\n{0}{1} log start\n".format(dt_now,name)) 21 f.write("S:名前を入力してください\n") 22 f.write("U:{}\n".format(name)) 23 f.write("S:こんにちは\n") 24 f.write("S:何かお話ししましょうか\n\n\n") 25 26wadai_num=0 27p_wadai=[] 28hatsuwa_wadai=[] 29last_out="" 30while 1: 31 32 wadai=[] 33 kanren_out="" 34 wadai_out="" 35 kanren_out_original="" 36 handan_kijun="" 37 keitaiso = [] 38 u = input("U:") 39 if u == '': 40 continue 41 42 with open(path, mode='a') as f: 43 f.write("U:{} ".format(u)) 44 45 u = maeshori.re_replace(u) 46 47 keitaiso = MeCab_mrphs.input2mrphs(u) 48 49 words,kd_flag=make_sentence_list.make_words_list(keitaiso,hatsuwa_wadai) 50 51 if words: 52 hatsuwa_wadai,kanrenbun=google_kensaku.in2kanrenbun(hatsuwa_wadai,words,u) 53 54 w_f=0 55 if len(p_wadai)==len(hatsuwa_wadai): 56 wadai_num=0 57 for i,w in enumerate(p_wadai): 58 if p_wadai[i]==hatsuwa_wadai[i]: 59 wadai_num=wadai_num+1 60 if wadai_num==len(p_wadai): 61 w_f=1 62 63 if len(hatsuwa_wadai)==2: 64 wadai_out="話題は「{}」と「{}」".format(hatsuwa_wadai[0],hatsuwa_wadai[1]) 65 elif len(hatsuwa_wadai)==1: 66 wadai_out="話題は「{}」".format(hatsuwa_wadai[0]) 67 print("({})".format(wadai_out)) 68 69 70 if kanrenbun[1] and kanrenbun[0]==last_out: 71 kanren_out=kanrenbun[1] 72 last_out=kanrenbun[1] 73 #print(kanrenbun[3]) 74 handan_kijun=kanrenbun[3] 75 kanren_out_original=kanrenbun[1] 76 else: 77 kanren_out=kanrenbun[0] 78 last_out=kanrenbun[0] 79 #print(kanrenbun[2]) 80 handan_kijun=kanrenbun[2] 81 kanren_out_original=kanrenbun[0] 82 if kd_flag==1: 83 #kanren_out="そうなのですか。" + kanren_out 84 a=0 85 86 kanren_out=reply.make_kanrenbun(kanren_out) 87 88 if len(hatsuwa_wadai)==1 and w_f==0: 89 #kanren_out = kanren_out + "\nS:" + hatsuwa_wadai[0] + "はどうでしたか?" 90 a=0 91 elif len(hatsuwa_wadai)==1 and w_f==1: 92 kanren_out = hatsuwa_wadai[0] + "が好きなのですか?" 93 elif len(hatsuwa_wadai)==2 and w_f==1: 94 kanren_out = "そうなのですか。\nS: 何か、違う話もしませんか?" 95 if kd_flag==2: 96 kanren_out="何かあったのですか? NO NOUN ERROR" 97 else: 98 kanren_out="何かあったのですか? NO NOUN ERROR" 99 100 p_wadai=hatsuwa_wadai 101 102 temp_rep = reply.make_temp_rep(u) 103 104 if temp_rep !="": 105 rep='S:{}'.format(temp_rep) 106 else: 107 rep="S:"+kanren_out 108 109 110 print(rep) 111 112 with open(path, mode='a') as f: 113 f.write("\n") 114 if temp_rep =="": 115 f.write("----------------------------------------------\n") 116 f.write("入力文は「{}」\n".format(u)) 117 f.write("推定された{}\n".format(wadai_out)) 118 f.write("関連文は「{}」\n".format(kanren_out_original)) 119 if len(handan_kijun)==3: 120 f.write("意味の近い単語は「{}」と「{}」({})\n".format(handan_kijun[0],handan_kijun[1],handan_kijun[2])) 121 f.write("出力文は「{}」\n".format(kanren_out)) 122 f.write("----------------------------------------------\n") 123 f.write("{}\n\n\n".format(rep)) 124 125 if u == 'さようなら' or u == 'またね': 126 break 127

試したこと

'dt'と'name'がないというエラーメッセージが出たので、'dt'は'google_kensaku'で定義したのですが、'name'も同じように定義したところ、demo.pyで定義している入力された名前ではなく、対話中に入力された文の名前のファイルを探してしまい、ファイルが存在しないとエラーが出ました。
'google_kensaku.py'を'demo.py'にインポートしてあるので、インポートした先での情報をインポートする前のファイルでも読み込めるようにしたいです。
この方法、もしくは別の方法をご存知の方がいらっしゃいましたら、教えていただけると幸いです。

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

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

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

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

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

meg_

2020/09/17 11:51

> NameError: name 'name' is not defined > 'name'も同じように定義したところ、demo.pyで定義している入力された名前ではなく、対話中に入力された文の名前のファイルを探してしまい、ファイルが存在しないとエラーが出ました。 「NameError: name 'name' is not defined」のエラーについては既に解決済とのことでしょうか?現在の問題が分かりにくくなっています。
oshoring

2020/09/17 12:45

コメントありがとうございます。 「NameError: name 'name' is not defined」のエラーはまだ解決できていません。 'dt'と'name'はファイルに対話ログを格納するためのファイル名を指定する関数になっています。 google_kensaku.pyをdemo.pyにインポートしているのですが、demo.pyで使っている'name'と'dt'の関数を'google_kensaku.py'でも利用したいです。 'demo.py'を'google_kensaku.py'にインポートするとエラーが発生してしまうため、'demo.py'のファイルと同じように入力すると'dt'は正常に読み込めるのですが、'name'は'name = input('U:')'と定義してしまうと、ユーザの名前ではなく、ユーザが入力した文だとシステムが認識してしまい、そのようなファイルは存在しないと言われてしまいます。
meg_

2020/09/17 13:12

質問のエラーメッセージを見るとエラー発生行はdemo.pyの中の「hatsuwa_wadai,kanrenbun=google_kensaku.in2kanrenbun(hatsuwa_wadai,words,u)」となっています。が、demo.pyにはそのようなコードはありません。どういうことでしょうか? 動作確認可能なコードがないと回答は難しいです。
oshoring

2020/09/17 13:29

申し訳ありません。 コードが結構長かったため、自分が必要だと感じたところだけを勝手に判断してしまい、切り取って載せてしまいました。 demo.pyとgoogle_kensaku.pyのコードを全て載せさせていただきます。 どうかよろしくお願いいたします。
oshoring

2020/09/17 13:31

demo.py import maeshori import MeCab_mrphs import make_sentence_list import reply import google_kensaku import datetime from zatsuyou import * dt_now = datetime.datetime.now() dt = datetime.date.today() print('S:名前を入力してください') name = input('U:') print('S:こんにちは') print('S:何かお話ししましょうか') path = 'log/{0}{1}_log.txt'.format(dt,name)  ##対話ログのフォルダ名 例:2020年2月25日の場合は2020-02-25_log.txt 同じ日の場合はすでにあるログに追記します。 with open(path, mode='a') as f: f.write("\n{0}{1} log start\n".format(dt_now,name)) f.write("S:名前を入力してください\n") f.write("U:{}\n".format(name)) f.write("S:こんにちは\n") f.write("S:何かお話ししましょうか\n\n\n") wadai_num=0 p_wadai=[] hatsuwa_wadai=[] last_out="" while 1: wadai=[] kanren_out="" wadai_out="" kanren_out_original="" handan_kijun="" keitaiso = [] u = input("U:") if u == '': continue with open(path, mode='a') as f: f.write("U:{} ".format(u)) ################################################# #######前処理部分################################# ################################################ u = maeshori.re_replace(u) #前処理をかけて形態素解析のバグを回避する。方言などを標準語に戻したりなど。 keitaiso = MeCab_mrphs.input2mrphs(u) #形態素解析の結果 #print(keitaiso) ###########発話内容の単語リスト作成############## #発話内容中の単語のリストを作成する。優先順位もこの時につけておく。 #入力:keitaisoは形態素群、hatsuwa_wadaiは前の話題 #出力:wordsは発話内容中の単語のリスト、kd_flagは形容動詞語幹があるかのフラグ(エラー処理にも使う)。 words,kd_flag=make_sentence_list.make_words_list(keitaiso,hatsuwa_wadai) #kd_flagはkeiyodoshigokan_flag。形容動詞語幹が入っているかどうかを判定している。 #形容動詞語幹があれば1、無ければ0、そもそも単語群が作れなければ2を返す。 #print(words) if words: #print("hatsuwa_wadai is {}".format(hatsuwa_wadai)) #print("words is {}".format(words)) #print("u is {}".format(u)) #######関連文検索######### #入力:hatsuwa_wadaiは前の話題、wordsは発話内容の単語のリスト、uは入力文 #出力:hatsuwa_wadaiは更新された現在の話題、kanrenbunは関連している文章 hatsuwa_wadai,kanrenbun=google_kensaku.in2kanrenbun(hatsuwa_wadai,words,u) #print("hatsuwa_wadai is {}".format(hatsuwa_wadai)) #print("kanrenbun is {}".format(kanrenbun)) #話題が変わっているかの判定。話題が変わっていたらw_fは0。まったく同じ話題の場合はw_fは1。 w_f=0 if len(p_wadai)==len(hatsuwa_wadai): wadai_num=0 for i,w in enumerate(p_wadai): if p_wadai[i]==hatsuwa_wadai[i]: wadai_num=wadai_num+1 if wadai_num==len(p_wadai): w_f=1 ##話題全く同じ #現在の話題を出力。必要に応じてコメントアウトしてください。 if len(hatsuwa_wadai)==2: wadai_out="話題は「{}」と「{}」".format(hatsuwa_wadai[0],hatsuwa_wadai[1]) elif len(hatsuwa_wadai)==1: wadai_out="話題は「{}」".format(hatsuwa_wadai[0]) print("({})".format(wadai_out)) #まったく同じ応答を生成しないための処理 if kanrenbun[1] and kanrenbun[0]==last_out: kanren_out=kanrenbun[1] last_out=kanrenbun[1] #print(kanrenbun[3]) handan_kijun=kanrenbun[3] kanren_out_original=kanrenbun[1] else: kanren_out=kanrenbun[0] last_out=kanrenbun[0] #print(kanrenbun[2]) handan_kijun=kanrenbun[2] kanren_out_original=kanrenbun[0] if kd_flag==1: #kanren_out="そうなのですか。" + kanren_out a=0 #関連文を雑談らしく加工。 kanren_out=reply.make_kanrenbun(kanren_out) #まったく同じ話題が続いたときに応答を変化させる。 if len(hatsuwa_wadai)==1 and w_f==0: #kanren_out = kanren_out + "\nS:" + hatsuwa_wadai[0] + "はどうでしたか?" a=0 elif len(hatsuwa_wadai)==1 and w_f==1: kanren_out = hatsuwa_wadai[0] + "が好きなのですか?" elif len(hatsuwa_wadai)==2 and w_f==1: kanren_out = "そうなのですか。\nS: 何か、違う話もしませんか?" if kd_flag==2: kanren_out="何かあったのですか? NO NOUN ERROR" else: kanren_out="何かあったのですか? NO NOUN ERROR" #現在の話題を前の話題として保持しておく p_wadai=hatsuwa_wadai ################################################# #######応答作成################################### ################################################# ######テンプレート応答かどうかを判断する####### temp_rep = reply.make_temp_rep(u) #####応答作成###### if temp_rep !="": rep='S:{}'.format(temp_rep) else: rep="S:"+kanren_out print(rep) #ログ記録用の処理 with open(path, mode='a') as f: f.write("\n") if temp_rep =="": f.write("----------------------------------------------\n") f.write("入力文は「{}」\n".format(u)) f.write("推定された{}\n".format(wadai_out)) f.write("関連文は「{}」\n".format(kanren_out_original)) if len(handan_kijun)==3: f.write("意味の近い単語は「{}」と「{}」({})\n".format(handan_kijun[0],handan_kijun[1],handan_kijun[2])) f.write("出力文は「{}」\n".format(kanren_out)) f.write("----------------------------------------------\n") f.write("{}\n\n\n".format(rep)) if u == 'さようなら' or u == 'またね': break
oshoring

2020/09/17 13:33

google_kensaku.py 前半 from bs4 import BeautifulSoup import requests import re import sni_w2v import suggest import datetime def google_kensaku(keys,num,w_flag): url = 'https://www.google.co.jp/search' result = requests.get(url, params={'q': keys , 'num' : num+1}) #print("result is {}".format(result)) error_flag="{}".format(result) if error_flag=="<Response [200]>": #print("GET SNIPET") a=0 elif error_flag=="<Response [429]>": print("*****API ERROR*****") print("本プログラムはGoogleのAPIを用いて作成されています.") print("GoogleのAPIは検索クエリを100秒に100件までと制限しています.") print("このエラーはその制限を超えてしまい,Googleから検索結果を取得できなくなった場合に表示されます.") print("制限が解除されるのが何時になるのか私には分かりません.") print("感覚的には大体1日ぐらい置いておくと治ってます.") print("機嫌が直るまでそっとして置いてあげてください.") print("*******************") """ wikiの見出し <div class="BNeawe deIvCb AP7Wnd"> wikiのカテゴリ <div class="BNeawe tAd8D AP7Wnd"> wikiのスニペット <div class="BNeawe s3v9rd AP7Wnd"> 検索されたページのタイトル <div class="BNeawe vvjwJb AP7Wnd"> 検索されたページのスニペット <div class="BNeawe s3v9rd AP7Wnd"> """ b=0 sni="" soup = BeautifulSoup(result.text, 'html.parser') wiki_f = soup.findAll(True, {'class' : 'UykT9d'}) #print(wiki_f) if w_flag==1: if wiki_f: midashi = soup.findAll(True, {'class' : 'BNeawe deIvCb AP7Wnd'}) w_m = str(midashi[0]).strip('<div class="BNeawe deIvCb AP7Wnd">') wiki_midashi = re.sub("<.*","",w_m) category = soup.findAll(True, {'class' : 'BNeawe tAd8D AP7Wnd'}) w_c = str(category[0]).strip('<div class="BNeawe tAd8D AP7Wnd">') wiki_category = re.sub("<.*","",w_c) w_snippet = soup.findAll(True, {'class' : 'BNeawe s3v9rd AP7Wnd'}) sni = str(w_snippet[0]).strip('<div class="BNeawe s3v9rd AP7Wnd">') wiki_snippet = re.sub("<.*","",sni) b=2 #print("wiki_flag is on") #print("wiki_midashi is {}".format(wiki_midashi)) #print("wiki_category is {}".format(wiki_category)) #print("wiki_snippet is {}".format(wiki_snippet)) return wiki_category else: return "" titles = soup.findAll(True, {'class' : 'BNeawe vvjwJb AP7Wnd'}) snippets = soup.findAll(True, {'class' : 'BNeawe s3v9rd AP7Wnd'}) #print(len(snippets)) title_list=[] for title in titles: title = str(title) title = re.sub('<div class="BNeawe vvjwJb AP7Wnd">',"",title) title = re.sub("\.\.\..*","",title) result_title = re.sub("<.*","",title) title_list.append(result_title) #print("title is {}".format(result_title)) sni_list=[] count=0 for sni in snippets: sni = str(sni) sni = re.sub('<div class="BNeawe s3v9rd AP7Wnd">',"",sni) sni = re.sub('<span.*/span>',"",sni) sni = re.sub('<div>',"",sni) #print(sni) sni = re.sub(r"\n","",sni) sni = re.sub("\xa0","",sni) sni = re.sub("\.\.\.","",sni) sni = re.sub(" ","",sni) result_sni = re.sub(r"<.*","",sni) if sni_list and (sni_list[-1]==result_sni or result_sni=="" or len(result_sni)<20): continue sni_list.append(result_sni) #print(count) count=count+1 #print("snippet is {}".format(result_sni)) t_len=len(title_list) if t_len>num: title_list=title_list[:num] #print(t_len) sni_list=sni_list[:num-t_len] kensaku_kekka=[] max=len(title_list) if len(title_list)>len(sni_list): max=len(sni_list) ###############################ばぐります  for i in range(max): #print(i) #print('title is {}'.format(title_list[i])) #print(sni_list) #print('snippet is {}'.format(sni_list[i])) #print(sni_list[i]) kensaku_kekka.append([title_list[i],sni_list[i]]) return kensaku_kekka def sni_judge(searched_list,keys): snippets=[] count=0 for sni in searched_list: snippets.append(sni[1]) for i,sni in enumerate(snippets): #print(i) #print(sni) if keys[0] in sni and keys[1] in sni: #print(i) count=count+1 return count def sni_ha_tyushutu(keys,maxlen=30): with open('data\{0}_snippets.txt'.format('_'.join(keys)), 'r',encoding='utf-8') as f: with open('data\{0}_ha.txt'.format('_'.join(keys)), 'w',encoding='utf-8') as f2: for line in f: for k in keys: if (k+"は") in line and len(line)<maxlen and len(line)>10: f2.write("{0},{1}".format(k,line)) f2.close() f.close() def sni_clo_vec(in_s,keys): with open('data\{0}_ha.txt'.format('_'.join(keys)), 'r',encoding='utf-8') as f: vcm=["","",0] vcm2=["","",0] max_sentence="" max2_sentence="" for line in f: line = re.sub("\n","",line) snis=line.split(",") #print(snis[1]) vc=sni_w2v.sentences_closed_vec_search(in_s,snis[1]) if len(vc)==3 and len(vcm)==3 and vc[2] > vcm[2]: vcm2=vcm max2_sentence=max_sentence max_sentence=snis[1] vcm=vc elif len(vc)==3 and len(vcm)==3 and vc[2] > vcm2[2]: max2_sentence=snis[1] vcm2=vc print("input sentence is " + in_s) print("out sentence is {}".format(max_sentence)) print("handan kijun is ") print(vcm) print("out sentence is {}".format(max2_sentence)) print("handan kijun is ") print(vcm2) return [max_sentence,max2_sentence,vcm,vcm2] def kensaku_write(keys,num,w_flag): keys_str = ' '.join(keys) #print("keys_str is {}".format(keys_str)) #print("num is {}".format(num)) #print("w_flag is {}".format(w_flag)) sni_list=google_kensaku(keys_str,num,w_flag) #print("sni_list is {}".format(sni_list)) if w_flag==0: with open('data\{0}_snippets.txt'.format('_'.join(keys)), 'w',encoding='utf-8') as f: for s in sni_list: sni_txt = re.sub(r"([。|!|\.|?])[^。!\.?]+$","\\1",s[1]) if not ("." in sni_txt or "。" in sni_txt or "!" in sni_txt or "?" in sni_txt) : continue sni_txt = re.sub(r"([。|!|\.|?])","\\1\n",sni_txt) sni_txt = re.sub("[「|」]","",sni_txt) f.write("{}".format(sni_txt)) elif w_flag==1: return sni_list #num=sni_judge(sni_list,keys) #print(num) def input2wadai(p_wadai,meishis): words=[] try: with open('./data/{}_suggest.txt'.format(p_wadai), 'r',encoding='utf-8') as f: #print("{}のサジェストあったよ".format(p_wadai)) words=[] for w in f: w = re.sub("\n","",w) words.append(w.split(",")) except FileNotFoundError: #print("{}のサジェストないよ".format(p_wadai)) suggest.make_suggest(p_wadai) with open('./data/{}_suggest.txt'.format(p_wadai), 'r',encoding='utf-8') as f: #print("{}のサジェスト作ったよ".format(p_wadai)) for w in f: w = re.sub("\n","",w) words.append(w.split(",")) ### words 例 [['靴', '15'], ['イラスト', '14'], ['結晶', '8'], ['ブーツ', '8']] for m in meishis: for w in words: if m == w[0]: return m return [] def keizoku_judge(keys,words): kanren="" keizoku_wadai="" new_wadai="" for k in reversed(keys): print("[{}] の words {}".format(k,words)) kanren=input2wadai(k,words) print("kanren is [{}] and [{}]".format(kanren,k)) if kanren: keizoku_wadai=k new_wadai=kanren if keizoku_wadai and new_wadai: #print("関連単語 「{}」 と 「{}」".format(keizoku_wadai,new_wadai)) return [keizoku_wadai,new_wadai] else: #print("関連する単語がないよ") return [] def keizoku_judge2(wadai_out,words): kanren="" keizoku_wadai="" new_wadai="" for k in reversed(wadai_out): print("[{}] の words {}".format(k,words)) kanren=input2wadai(k,words) print("kanren is [{}] and [{}]".format(kanren,k)) if kanren: keizoku_wadai=k new_wadai=kanren if keizoku_wadai and new_wadai: #print("関連単語 「{}」 と 「{}」".format(keizoku_wadai,new_wadai)) return [keizoku_wadai,new_wadai] else: #print("関連する単語がないよ") return [] def wadai_suitei(keys,words): #dt = datetime.date.today() #name = with open('log/{0}{1}_log.txt'.format(dt,name), 'r',encoding='utf-8') as f: if len(keys)>0: wadais = keizoku_judge(keys,words) if not wadais: wadais = [words[0]] return wadais elif len(keys) == 0: for wadai_out in f: wadais2 = keizoku_judge2(wadai_out,words) if not wadais: wadais2 = [words[0]] return wadais2 else: ##keysがなかった時のエラー処理。ここに来たらマズイ print("***w_flag error***") print("フラグがなんかバグってます") print("******************") wadai = [words[0]] return wadai
oshoring

2020/09/17 13:34

google_kensaku.py 後半 def in2kanrenbun(keys,words,input_s): #print("keys's len is {}".format(len(keys))) if len(keys)==0: ##keysに何もなければw_flagを立てる w_flag=1 else: w_flag=0 #print("w_flag is {}".format(w_flag)) if w_flag==0: wadai = wadai_suitei(keys,words) #wadai=["小樽", "あんかけ焼きそば"] kensaku_write(wadai,100,w_flag) sni_ha_tyushutu(wadai,maxlen=50) kanrenbun=sni_clo_vec(input_s,wadai) elif w_flag==1: wadai=[words[0]] #wadai=["小樽", "あんかけ焼きそば"] wiki = kensaku_write(wadai,100,w_flag) print(wiki) if wiki: wiki_joho=wadai[0] + "といえば" + wiki+ "ですよね" kanrenbun=[wiki_joho,"","",""] elif len(wadai)==1: kanrenbun=[wadai[0]+"ですか","","",""] return wadai,kanrenbun
oshoring

2020/09/17 13:35

google_kensaku.pyのコードがかなり長かったため、2つに別れてしまいました。 申し訳ありませんが宜しくお願い致します。
meg_

2020/09/17 13:40

ここに書いていただいても、インデントが消えてしまいコードが読めません。質問は編集出来ますので、質問に追記お願いします。
oshoring

2020/09/17 13:40

本文には文字数制限で書き換えることができなかったため、コメント欄に全てのコードを書かせていただきました。 申し訳ありません。
oshoring

2020/09/17 13:42

インデントのことまで頭が回っていませんでした。 申し訳ありません。 文字数制限ギリギリで書ける範囲まで、質問を編集させていただきます。
oshoring

2020/09/17 14:11

遅くなり申し訳ございません。 demo.pyは文字数制限大丈夫だったのですが、google_kensaku.pyは文字数オーバーしてしまったため、写真で載せさせていただきました。
meg_

2020/09/17 14:22

変数のスコープが違うと参照できないので、処理に必要な変数は関数の引数として渡す方法が良いと思います。
oshoring

2020/09/17 14:47

ありがとうございます! プログラミングの知識があまりないのですが、 関数の引数として渡すということはwadai_suitei(keys, words, dt, name):とすれば良いということでしょうか。
meg_

2020/09/17 15:09

それで良いと思います。
oshoring

2020/09/17 15:17

そのように変更した場合、ファイルが違うためかこのようなエラーが出てしまうのですが、どうすれば良いでしょうか。 Traceback (most recent call last): File "demo.py", line 78, in <module> hatsuwa_wadai,kanrenbun=google_kensaku.in2kanrenbun(hatsuwa_wadai,words,u) File "google_kensaku.py", line 288, in in2kanrenbun wadai = wadai_suitei(keys,words) TypeError: wadai_suitei() missing 2 required positional arguments: 'dt' and 'name'
meg_

2020/09/17 16:28

すません。何か勘違いしてました。下記追加修正してください。 google_kensaku.in2kanrenbun(hatsuwa_wadai,words,u)をgoogle_kensaku.in2kanrenbun(hatsuwa_wadai,words,u, dt, name)にすれば良いかと思いました。 そうすればin2kanrenbun関数の中でdtとnameが使えるようになるはずです。(もちろんin2kanrenbun関数の引数も修正します) そして、wadai = wadai_suitei(keys,words)もwadai = wadai_suitei(keys,words,dt,name)とすれば良いでしょう。
oshoring

2020/09/17 16:55

こんな時間までありがとうがざいます! 無事に実行できました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問