В Python, возможность читать файлы типа JSON с удаленного компьютера - PullRequest
0 голосов
/ 12 июня 2019

На самом деле я делаю 2 программы на Python, одну на своем компьютере, а другую на удаленном суперкомпьютере. Для связи между двумя компьютерами я использую ssh, точнее, переменная s в следующем коде состоит из

from pexpect import pxssh
s = pxssh.pxssh()

Эти 2 программы должны использовать файлы типа json для передачи информации. Я могу отправить файл json со своего компьютера на суперкомпьютер, но мой единственный способ прочитать файл данных json на суперкомпьютере - отправить ему команду cat, я уверен, что есть более эффективные способы сделать это. Итак, вот пример файла (option.json) в json, который я хочу прочитать на суперкомпьютере:

{
    "status": "job given",
    "progress": "0",
    "yaxis": "docc",
    "xaxis": "iteration",
    "from": 0.0,
    "to": 0.0,
    "nb_of_pts": 0
}

Теперь код, который я использую для записи на суперкомпьютере:

def write_in_SC(s, command):
    text = 0
    try:
        s.sendline(command)  # run a command
        s.prompt()              # match the prompt
        text = read_in_SC(s)
    except Exception as details:
        print('Not able to write on super computer (AS0005) :' + str(details))

    return text         # returns text if everything went as supposed to, 0 if not

def overwrite_file(s, file2write, file2overwrite):

    text = write_in_SC(s, 'ls')
    if text.find(file2overwrite) != -1:
        write_in_SC(s, 'rm ' + file2overwrite)
    with open(file2write, "r") as my_file:
        json_txt = my_file.read()
    txt = json_txt.split('\n')
    for x in txt:
        write_in_SC(s, "echo '" + x + "' >> " + file2overwrite)

overwrite_file(s, 'option.json', 'option.json')

Даже если файлы to option.json названы одинаково, это не на том же компьютере. Отсюда я немного не в курсе и понятия не имею, как читать полный файл данных json, если я не делаю это с помощью команды cat. Так как бы вы сделали?

...