Я хотел бы прочитать файл на удаленной машине. Я могу сделать это, используя paramiko
.
Файл постоянно обновляется новыми строками. Я попытался реализовать скрипт python для его чтения. Вот интересная часть кода:
import glob
import sys
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import os
import pandas as pd
from scipy.linalg import norm
import time
import paramiko
import select
if __name__ == "__main__":
print("...starting")
# a lot of stuff here in the middle
ssh_client = paramiko.SSHClient()
ssh_client.load_system_host_keys()
ssh_client.connect(hostname='xxx.xx.xx.xxx',username='user',password='pass')
print("...starting transport:")
transport = ssh_client.get_transport()
channel = transport.open_session()
channel.exec_command("cat /tmp/ciao.txt")
while True:
rl, wl, xl = select.select([channel],[],[],0.0)
#print(rl.readlines())
if len(rl) > 0:
#print("printing")
string_in_file = channel.recv(1024)
if len(string_in_file) > 0:
#print("printing")
print(string_in_file)
Проблема : файл правильно читается в начале и после, каждая вновь записанная строка полностью игнорируется или, по крайней мере, это делает не оказывает никакого влияния на вывод предложенного сценария. Любые предложения о том, как читать новые строки при написании?
Любая другая идея о том, как достичь того же результата (даже без paramiko
), приветствуется. Единственным ограничением является использование python.