Python Paramiko删除获取或打开文件

我试图使用paramiko的SFTP模块从远程服务器读取文件,但任何时候我打电话

sftp.get('remote_filename', 'local_destination')
它从服务器上删除'remote_filename'。

我也尝试直接使用文件对象

sftp.file('remote_filename')
但打开后仍然会删除文件。 谁能告诉我为什么会发生这种情况?

这是一个以文件名作为参数并返回SFTP File对象的示例函数:

import paramiko, socks, os

def get_file(filename):

    sock = socks.socksocket()
    username = 'username'
    key = paramiko.DSSKey.from_private_key_file(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'id_dsa'),
                                         password=os.environ.get('PKEY_PASSWORD'))

    host = 'myftpserver.com'
    port = 22
    # Connect to server
    sock.connect((host, port))
    transport = paramiko.Transport(sock)
    transport.connect(username=username, pkey=key)
    sftp = paramiko.SFTPClient.from_transport(transport)

    return sftp.file(filename)

谢谢


尝试这个

import paramiko
import os



paramiko.util.log_to_file("C:DocsPersonalMovieslog.log")
host = "10.22.16.5"
port = 22
transport = paramiko.Transport((host, port))

    # Auth

password = "whpee"
username = "root"
transport.connect(username = username, password = password)

    # Go!

sftp = paramiko.SFTPClient.from_transport(transport)

    # Download

localfile="C:DocsPersonalMoviestemp.txt"
remotefile="/root/temp.txt"
sftp.get(remotefile,localfile)

如果仍在删除,请检查日志文件

链接地址: http://www.djcxy.com/p/33643.html

上一篇: Python Paramiko deletes files on get or open

下一篇: Setting timelimit for sftp.get() of Paramiko module