一尘不染

使用Python使用SSH从服务器读取文件

python

我正在尝试使用来自Python的SSH从服务器读取文件。我正在使用Paramiko进行连接。我可以连接到服务器并运行类似的命令cat filename,然后从服务器获取数据,但是我尝试读取的某些文件的大小约为1 GB或更大。

如何使用Python在服务器上逐行读取文件?

附加信息:通常要做的是运行cat filename命令并将结果存储在变量中并加以解决。但是由于这里的文件很大,我正在寻找一种从服务器逐行读取文件的方法。

编辑:我可以读取一堆数据并将其分成几行,但问题是缓冲区中接收的数据并不总是包含完整的行。例如,如果缓冲区有300行,则最后一行可能仅是服务器上该行的一半,而下一行将在下一次对服务器的调用中获取。我想要完整的台词

编辑2:我可以使用什么命令来打印文件在一定范围内的行。像先打印100行,然后再打印100行,依此类推?这样,缓冲区将始终包含完整的行。


阅读 316

收藏
2020-12-20

共1个答案

一尘不染

Paramiko的SFTPClient允许您获取类似文件的对象,以Python方式从远程文件读取数据。

假设您有空缺SSHClient

sftp_client = ssh_client.open_sftp()
remote_file = sftp_client.open('remote_filename')
try:
    for line in remote_file:
        # process line
finally:
    remote_file.close()
2020-12-20