我正在使用 paramiko 在 python 中打开远程 sftp 文件。使用 paramiko 返回的文件对象,我正在逐行读取文件并处理信息。与使用 os 中的 python 内置方法“open”相比,这看起来确实很慢。以下是我用来获取文件对象的代码。
使用paramiko(慢2倍)-
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(myHost,myPort,myUser,myPassword)
sftp = client.open_sftp()
fileObject = sftp.file(fullFilePath,'rb')
使用操作系统 -
import os
fileObject = open(fullFilePath,'rb')
我错过了什么吗?有没有一种方法可以使 paramiko 文件对象读取方法与使用 os 文件对象的方法一样快?
Thanks!!
您的问题可能是由该文件是远程对象引起的。您已在服务器上打开它,并且每次请求一行 - 因为它不是本地的,所以每个请求比文件位于硬盘驱动器上花费的时间要长得多。最好的选择可能是首先使用 Paramiko 将文件复制到本地位置SFTP get http://www.lag.net/paramiko/docs/paramiko.SFTPClient-class.html#get.
完成此操作后,您可以使用以下命令从本地位置打开文件os.open
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)