На самом деле я делаю 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
. Так как бы вы сделали?