2017-04-04 11 views
-1

データベースへのファイルを作成する学習ボットを作成していますが、挿入にエラーがあります。python - 挿入時のエラー

コード:

#kernel now ready for use 
while True: 
if mode == "voice": 
    response = listen() 
else: 
    response = raw_input("Say: ") 
    if response == "aprender": 
     learn = raw_input("Learn: ") 
     f = open("database.aiml", "r") 
     contents = f.readlines() 
     f.close() 

     #ERROR HERE>> contents.insert("1", "<category>\n<pattern>*</pattern>\n<template>\n", learn, "</template>\n</category>\n") 

     f = open("database.aiml", "w") 
     contents = "".join(contents) 
     f.write(contents) 
     f.close() 
+2

あなたが取得しているエラーは何ですか?私は学習使用しようとすると – umutto

+0

Pythonは閉じ:contents.insertを( "1"、 " \ nは * \ n個のn \ \ nは"、学ぶ) –

+0

してください(再) "[ask]"を読んで質問を編集し、エラーメッセージとstacktrace全体を含む[mcve]を提供してください。 –

答えて

0

あなたは正確にここで行うために何をしようとしていますか? Contentsはリストオブジェクトなので、insertは2つの引数をとる必要があります。インデックスと挿入するもの(あなたの場合は文字列)です。

私が最初に次のことを変更してみて、どのような影響を与えることであることがわかります。

contents.insert(1, "<category>\n<pattern>*</pattern>\n<template>\n" + learn \ 
+ "</template>\n</category>\n") 
+0

はい、これはうまくいきますが、文字列と変数の接合点を作成しようとしていますが、できますか? –

+1

文字列と変数の接合点はどういう意味ですか?あなたが連結を意味するならば、あなたは+記号を使ってそれを行うことができます(私はそれを反映するために私の答えを更新しました) –

+0

うわー、これは動作します!非常にありがとう、Abid! –