Как сохранить файл на локальном перце - PullRequest
0 голосов
/ 05 ноября 2018
ALMEMORY_KEY_NAMES = [
"Device/SubDeviceList/HeadYaw/Position/Actuator/Value", 
"Device/SubDeviceList/HeadYaw/Position/Sensor/Value",
"Device/SubDeviceList/HeadYaw/ElectricCurrent/Sensor/Value", 
"Device/SubDeviceList/HeadYaw/Temperature/Sensor/Value",
"Device/SubDeviceList/HeadYaw/Hardness/Actuator/Value",
"Device/SubDeviceList/HeadYaw/Temperature/Sensor/Status",]

ROBOT_IP = "10.34.111.131"

import os
import sys
import time

from naoqi import ALProxy

def recordData(nao_ip):

    print "Recording data ..."
    memory = ALProxy("ALMemory", nao_ip, 9559)
    data = list()
    for i in range (1, 500):
        line = list()
        for key in ALMEMORY_KEY_NAMES:
            value = memory.getData(key)
            line.append(value)
        data.append(line)
        time.sleep(0.005)
    return data


def main():

    if len(sys.argv) < 2:
        nao_ip = ROBOT_IP
    else:
        nao_ip = sys.argv[1]
    data = recordData(nao_ip)
    #output ="record.csv"
    output = ("/home/nao/.local/share/logkayit/logkayit.txt")

    with open(output, "w") as fp:
        for line in data:
            fp.write("; ".join(str(x) for x in line))
            fp.write("\n")

    print "Results written to", output


if __name__ == "__main__":
    main()

Первый шаг: я хочу сохранить также локального робота /home/nao/.local/share/logkayit/logkayit.txt. Но это не сработало, и я не знаю, что такое решение.

Второй шаг: я хочу также сохранить журнал о деталях диалога. Я могу очень хорошо проверить из Monitor App, но я хочу это с .cvs.

Последний шаг: возможно ли сохранить .cvs onTime? Например каждый день 14:00 - 16:00

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я думаю, что ваша проблема в том, что вы запускаете свой код на своем компьютере. Если вы хотите написать logkayit.txt на роботе, вам нужно запустить свой .py на роботе. Если нет, ваш код будет только пытаться записать текстовый файл на вашем компьютере и вызвать ошибку.

0 голосов
/ 07 ноября 2018

Если вы запустите этот код, он выведет ошибку - в вашем случае проблема в том, что переменная «data» не существует, а означает, что , потому что вы не вызываете recordData работать в любом месте вашего кода.

...