gpt4 book ai didi

python - 返回到 sftp 远程文件的开头

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:45 25 4
gpt4 key购买 nike

我正在使用 Paramiko 通过 sftp 打开远程文件。远程文件有一个短语列表,我想遍历文件的每一行以查看给定短语是否与远程文件中的短语匹配。

用于获取远程文件的代码:

    self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh.connect(host, username=username, password=password)

self.sftp_client = self.ssh.open_sftp()
self.remote_file = self.sftp_client.open(remote_file_path, mode='rb')

def checkSubnet(self, phrase):
found = 0
for line in self.remote_file:
if phrase in line:
found = 1
print "FOUND IT"
break
return found

这适用于匹配的第一个短语,但是如果要匹配的下一个短语位于文件中的前一个短语之前,则它将找不到它。我已将其调试为 for 循环从上次比赛中先前中断的位置重新开始。我的理解是它会从文件的顶部重新开始。

有什么办法可以改变这种行为吗?或者甚至是更好的方法来做到这一点。该文件包含大约 97,000 个短语,并且每天都会发生变化,因此不可能保留本地版本。

谢谢

最佳答案

for 循环之前调用 seek(0) 来返回到文件的开头:

def checkSubnet(self, phrase):
found = 0

self.remote_file.seek(0)

for line in self.remote_file:
if phrase in line:
found = 1
print "FOUND IT"
break

return found

关于python - 返回到 sftp 远程文件的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26745102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com