Help us understand the problem. What is going on with this article?

Pepper内に保存したテキストを書き加えていく方法メモ

More than 3 years have passed since last update.

参考記事

動機

大学院(IAMAS)の講義でPepperをいじる予定だったが、Pepperが届かないためNAOを使っている。かなり苦戦している。
目のカメラでLINEのQRコードを読み込ませて、友だち追加用URLをNAOの中にストックさせるクズロボットをつくろうと思った。
スタンドアロン環境でやるには、読み込むたびに、アドレスをtextファイルに追加しなくてはいけない。この講義で初めてPythonを読んだ、変数の指定の仕方もわからないクソ初心者なので、qiitaの練習がてら、とりあえず書き残そうと思った。

方法

Pepperでファイル保存したり取り出したりの、Write TextRead Textを参考に、保存されているテキストを一旦読み込んで、新規テキストを書き込み、その下に保存されていたテキストを書き込む、という手順を踏むことにした。下記の2つを参考。

プログラム

Write Textの、onInput_onStartを下記の通り書き変える。

    def onInput_onStart(self, text):
        import codecs
        try:
            with codecs.open(self.getParameter("File path"), "r", self.getParameter("Encoding")) as f:
                text2 = f.read()
            with codecs.open(self.getParameter("File path"), "w", self.getParameter("Encoding")) as f:
                f.write(text.decode("utf8"))
                f.write('\n'.decode("utf8"))
                f.write(text2.decode("utf8"))
            self.onStopped()
        except IOError as e:
            self.logger.error("Failed: %s" % str(e))
            self.onFailure(str(e))
  • text2とかじゃない、もっとスマートな変数はあるかもしれない。
  • もっとスマートな改行もあるかもしれない。

他、ひっかかったとこ

スクリーンショット 2015-05-25 14.26.30.png

NAOの内部にテキストを保存するには、File Pathを/home/nao/***.txtにする必要がある。.txtじゃなくてもいいのかも。
NAOの内部ストレージのアドレスが/home/nao/なんですね。これはあちこち探してもあんまり書いてなくてひっかかった。

結果

スクリーンショット 2015-05-25 14.18.25.png

スクリーンショット 2015-05-25 14.17.19.png

QRコードの読み取り結果が一行ずつ保存されるようになったよ!これでうまくQRコードかざしてもらえば、後からtext抜き出してURL打ち込んだら友達がふえるよ!やったねたえちゃん!
ていうかネットつながってれば、こんなめんどくさいことしなくても、メールで送るなりやり方いっぱいありそう。

最後に

Pepperいじりたい :joy: :joy: :joy:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした