我正在尝试使用来自Python的SSH从服务器读取文件。我正在使用Paramiko进行连接。我可以连接到服务器并运行类似的命令cat filename,然后从服务器获取数据,但是我尝试读取的某些文件的大小约为1 GB或更大。
cat filename
如何使用Python在服务器上逐行读取文件?
附加信息:通常要做的是运行cat filename命令并将结果存储在变量中并加以解决。但是由于这里的文件很大,我正在寻找一种从服务器逐行读取文件的方法。
编辑:我可以读取一堆数据并将其分成几行,但问题是缓冲区中接收的数据并不总是包含完整的行。例如,如果缓冲区有300行,则最后一行可能仅是服务器上该行的一半,而下一行将在下一次对服务器的调用中获取。我想要完整的台词
编辑2:我可以使用什么命令来打印文件在一定范围内的行。像先打印100行,然后再打印100行,依此类推?这样,缓冲区将始终包含完整的行。
Paramiko的SFTPClient类允许您获取类似文件的对象,以Python方式从远程文件读取数据。
SFTPClient
假设您有空缺SSHClient:
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()