[PYTHON] Speichern und Abrufen von Dateien mit Pepper

Beim Speichern oder Abrufen von Informationen in Pepper wird ALMemory E3% 81% 97% E3% 81% 9F% E3% 82% A4% E3% 83% 99% E3% 83% B3% E3% 83% 88% E5% 80% A4% E3% 81% AE% E5% 8F% 96% E5% BE% 97) ist der Königsweg, aber wenn Sie darüber nachdenken, einen etwas größeren Text mit einer Anwendung zu speichern und ihn mit einem Entwicklungs-PC zu extrahieren, ist die Datei bequemer. Es gibt auch.

In einem solchen Fall habe ich ein Feld zum Schreiben einer Textdatei erstellt und versucht, die Datei aus Pepper in die lokale Umgebung zu extrahieren. Daher habe ich eine Notiz erstellt.

Exportfeld für Textdateien

Die Box befindet sich im Verzeichnis "Web-Boxen" unter https://github.com/yacchin1205/pepper-web-boxes.

Klonen oder Herunterladen von ZIP, [Load Box Library](http://qiita.com/Atelier-Akihabara/items/db907ed319b8af0984db#%E3%83%9C%E3%83%83%E3%82% AF% E3% 82% B9% E3% 83% A9% E3% 82% A4% E3% 83% 96% E3% 83% A9% E3% 83% AA% E3% 81% AE% E8% AA% AD% Sie können es verwenden, indem Sie die Box-Bibliothek gemäß dem Verfahren von E3% 81% BF% E8% BE% BC% E3% 81% BF laden.

Die erstellte Box befindet sich im Ordner "IO" der Boxbibliothek und sieht wie folgt aus. Gibt es irgendwo so etwas wie ein Tool zur Generierung von Boxdokumenten ...

IO> Textfeld schreiben

Schreiben Sie den Text in eine Datei.

write-text-box.png

onStart-Eingabe

Geben Sie den Text ein, den Sie exportieren möchten. Wenn diese Eingabe ausgelöst wird, wird die Zeichenfolge ausgeschrieben, die in die Datei eingegeben wurde, die durch den unten beschriebenen Parameter Dateipfad angegeben wird.

onStopped Ausgabe

Ausgabe bei erfolgreichem Export.

onFailure-Ausgabe

Wenn das Schreiben fehlschlägt, wird eine Zeichenfolge ausgegeben, die den Inhalt des Fehlers angibt.

Dateipfadparameter

Geben Sie den Pfad der zu lesenden Textdatei an. Es wird basierend auf dem aktuellen Verzeichnis erstellt, in dem das Verhalten ausgeführt wird.

Codierungsparameter

Gibt die Zeichenkodierung der zu lesenden Textdatei an. Der Standardwert ist "utf8". Informationen dazu, welche Art von Wert angegeben werden kann, finden Sie unter http://docs.python.jp/2.7/library/codecs.html.

Ich bin süchtig nach: Umgang mit Unicode in Python-Boxen

Es ist nicht dieses Feld "Text schreiben", aber ich habe mich in die Unicode-Falle mit dem folgenden Code in dem Feld "Text lesen" verliebt, das ich damit erstellt habe.

with codecs.open(self.getParameter("File path"), "r", self.getParameter("Encoding")) as f:
    text = f.read()
self.onStopped(text.encode("utf8"))

Ich habe "Zeichenfolge" für den Typ "onStopped" angegeben, aber wenn ich die von "read ()" erhaltene Zeichenfolge vom Typ Unicode als Argument gebe, wird "None" an die nächste Eingabe übergeben. Es scheint zu enden. Ich habe Testcode geschrieben, aber wenn ich in Choregraphes Dokumentation String sage, wird anscheinend nur der Python-Typ str berücksichtigt und der Unicode-Typ kann nicht verarbeitet werden. Vorerst habe ich es vermieden, indem ich es als Byte-Array mit "encode (" utf8 ")" angegeben habe, aber dieses Verhalten von Choregraphe entspricht nicht der Idee von Strings in Python, und es ist sehr cool, da es Verwirrung stiften kann. Ich fühle mich wie ich nicht bin.

Für Japaner ist es besser, dies zu klären, also fragte ich in der Aldebaran-Community (String in Choregraphes Python-Box. -choregraphes-python-box-2651)) Die Antwort, dass der Unicode-Typ jetzt nicht unterstützt wird ... Hmm.

Prüfung

Derzeit wird ein einfacher Test in das Repository "tests / test-io-text /" geschrieben. Testen Sie beispielsweise auf der Ebene, ob der im Feld Text lesen erhaltene Inhalt den unten gezeigten Erwartungen entspricht. Der Test zum Lesen von Text sieht beispielsweise so aus.

read-text-test.png

Informationen zur Idee finden Sie unter Überlegungen zum Test der Pepper Box-Bibliothek.

Extrahieren von Dateien in die lokale Umgebung

Einige Informationen zum Abrufen von Dateien, die in diesen Feldern gespeichert sind.

Verwenden Sie Choregraphe

Für das Dateisystem von Pepper können Sie mit Choregraphe Dateien hochladen und herunterladen. [Dateien in das erweiterte Menü übertragen](http://qiita.com/tonosamart/items/fe3948a45ccc97ddbbab#choregraphe%E3%81%A7%E3%81%A4%E3%81%AA%E3%81%84% E3% 81% A7% E3% 81% BF% E3% 82% 8B% EF% BC% 92), daher ist es der königliche Weg, es zu benutzen.

Laden Sie Dateien von Pepper über HTTP herunter

Wenn ich an Automatisierung denke, möchte ich manchmal Dateien auch in einer Umgebung ohne Choregraphe abrufen. Wenn Sie sich die Dokumentation NAOqi Developer Guide> Programmierung> Verbinden von Choregraphe / Ihrem Roboter> Verbindungsmanagement ansehen, können Sie davon ausgehen, dass FTP funktioniert, aber ich habe es gewagt, HTTP zu verwenden.

[Wenn Sie im Projekt ein Verzeichnis mit dem Namen html erstellen, können Sie es auf dem Tablet anzeigen](http://qiita.com/Atelier-Akihabara/items/716e88b306db12751c9b#%E7%B0%A1%E5%8D%98%E3%81%AAhtml% E3% 82% 92% E3% 82% BF% E3% 83% 96% E3% 83% AC% E3% 83% 83% E3% 83% 88% E3% 81% AB% E8% A1% A8% E7% A4% BA), aber in diesem Zustand können Sie den Inhalt dieses HTML-Verzeichnisses anzeigen, indem Sie "http: // (Pepper's name.local. Oder IP-Adresse) / apps / .lastUploadedChoregrapheBehavior /" ausführen. Vielleicht ist es die gleiche Idee wie das Verzeichnis "public_html" in Ihrem Home-Verzeichnis auf einem Webserver abzulegen.

Warum also nicht die Dateien generieren, die Sie im HTML-Verzeichnis zum Download bereitstellen möchten? Ich habe das Projekt "samples / dump-info" im Repository erstellt. Hier werden alle Inhalte von ALMemory und alle Inhalte der Einstellungen gespeichert, in einer Textdatei gespeichert und von einem externen PC heruntergeladen.

dump-info-flow.png

Die Punkte sind die folgenden zwei Punkte.

  1. Der Parameter für den Dateipfad, der dem Feld "Text schreiben" zugewiesen wird, wird durch den Ausgabewert des ursprünglichen Felds "HTML-Datei abrufen" festgelegt (ebenfalls in "Web-Boxen" platziert). Das Feld HTML-Datei abrufen generiert den Ausgabedateipfad basierend auf dem absoluten Pfad des HTML-Verzeichnisses in seiner Anwendung.
  2. In html / index.html wird im Feld HTML-Datei abrufen ein Link zur angegebenen Datei bereitgestellt.

Öffnen Sie nach dem Ausführen dieser Anwendung eine URL wie "http: // Peppers IP / apps / .lastUploadedChoregrapheBehavior /" auf einem PC, der mit demselben LAN wie Pepper verbunden ist. Anschließend können Sie die index.html des Projekts von Ihrem PC aus überprüfen. Hier können Sie die im Feld Schreiben von Text exportierte Datei (1.) herunterladen, indem Sie auf den Link zur Datei (2.) klicken.

Wenn Sie also eine Datei im Projekt erstellen und vom PC abrufen möchten, sollten Sie die Datei im HTML-Verzeichnis des Projekts erstellen. Lassen Sie uns dies für eine Weile verwenden ...

Recommended Posts

Speichern und Abrufen von Dateien mit Pepper
Bearbeiten und speichern Sie schreibgeschützte Dateien mit vim
Lesen und Schreiben von CSV-Dateien mit Numpy
Lesen und Schreiben von JSON-Dateien mit Python
Gesichtserkennung aus mehreren Bilddateien mit openCV, ausschneiden und speichern
Ziehen Sie eine lokale Datei mit Selenium (Python) per Drag & Drop.
Beschreibe ec2 mit boto3 und rufe den Wert ab
Lesen und Schreiben passt Dateien mit Python (Memo)
Benennen oder verschieben Sie Dateien (Verzeichnis) mit dem Befehl mv
Laden Sie Dateien mit Django hoch
Speichern Sie Speicher mit `` __slots__``
Ich habe versucht, mit VOICEROID2 2 automatisch zu lesen und zu speichern
Ich habe versucht, mit VOICEROID2 automatisch zu lesen und zu speichern
Speichern Sie .py- und .html-Dateien automatisch im Jupyter-Notizbuch.
Lesen und Schreiben von Dateien mit Slackbot ~ Bot-Entwicklung mit Python ~
Punktwolke mit Pfeffer
Linux: Dateien und Verzeichnisse
Speichern Sie Listen, Wörterbücher und Tabellen in externen Python-Dateien
Mit und ohne WSGI
kobitonote.py - Mit Kobito bearbeitete Elemente in Evernote synchronisieren
Visualisieren Sie den Hohlraumfluss mit matplotlib und speichern Sie ihn als GIF-Animation
Beispiel für das Parsen von HTTP GET und JSON mit Pfefferpython
Laden Sie Dateien mit Django-Speicher in Google Cloud Storages hoch und löschen Sie sie
Bei mir cp und Subprocess
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Linux (Über Dateien und Verzeichnisse)
Python und Hardware-Verwenden von RS232C mit Python-
Informationen zu LINUX-Dateien und -Prozessen
Speichern Sie Bilder mit Web Scraping
Lesen und Schreiben von CSV-Dateien
Sortieren von Bilddateien mit Python (2)
Sortieren Sie große Dateien mit Python
Sortieren von Bilddateien mit Python (3)
Debuggen mit dem PEPPER Python Interpreter
Bilddateien mit Python sortieren
Verwenden Sie Django, um Tweet-Daten zu speichern
Dateien mit teraterm übertragen [Hinweis]
Integrieren Sie PDF-Dateien in Python
TXT-Dateien mit Python lesen
Super Auflösung mit SRGAN und ESRGAN
Group_by mit sqlalchemy und sum
Python mit Pyenv und Venv
Arbeiten mit JSON-Dateien in Matlab
Mit mir, NER und Flair
Funktioniert mit Python und R.
Führen Sie Jupyter mit der REST-API aus, um Python-Code zu extrahieren und zu speichern
Lassen Sie uns mit Pylearn2 eine Drei-Wege-KI erstellen - Modell speichern und laden -
[AWS] Suchen und Abrufen der erforderlichen Daten aus S3-Dateien mit S3 Select
So importieren Sie CSV- und TSV-Dateien mit Python in SQLite
Korrespondenzanalyse von Sätzen mit COTOHA API und Speichern in Datei
Nehmen Sie ein Bild mit Pepper auf und zeigen Sie es auf Ihrem Tablet an
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Holen Sie sich OCTA-Simulationsbedingungen aus einer Datei und speichern Sie sie mit Pandas
Betreiben Sie Firefox mit Selen aus Python und speichern Sie die Bildschirmaufnahme