python - 在 python 中使用 paramiko 打开远程文件慢

标签 python file

<分区>

我正在使用 paramiko 在 python 中打开远程 sftp 文件。使用 paramiko 返回的文件对象,我正在逐行读取文件并处理信息。与使用 os 中的 python 内置方法“打开”相比,这似乎真的很慢。以下是我用来获取文件对象的代码。

使用 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 文件对象的方法一样快?

谢谢!!

最佳答案

您的问题很可能是由于文件是远程对象引起的。您已经在服务器上打开它并且一次请求一行 - 因为它不是本地的,所以每个请求花费的时间比文件位于您的硬盘驱动器上要长得多。最好的替代方法可能是首先使用 Paramiko 的 SFTP get 将文件复制到本地位置。 .

完成后,您可以使用 os.open 从本地位置打开文件。

关于python - 在 python 中使用 paramiko 打开远程文件慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563496/

相关文章:

python - 关系 "account_emailaddress"不存在 - Django 错误

创建txt文件并从中读取

C++:如何将 std::string 的内容写入 UTF-8 编码文件?

python - 根据用户输入创建文件

python - 如何在Python中删除文件中的重复行

java - Android 无法删除文件

python - 与串行运行相比,在双核 CPU 上并行运行两个脚本是否会降低速度?

python - 排除匹配 [\W\d]+ 正则表达式中的句点字符

Python 脚本进入不正确的 if 语句

c# - Python 等效于 C# 6 中引入的空条件运算符