我正在尝试使用 python 来 sftp 文件,并且代码在交互式 shell 中运行良好——甚至可以一次将其粘贴。
当我尝试导入文件(只是为了编译它)时,代码挂起,没有异常或明显错误。
我如何让代码编译,或者是否有人有通过其他方法完成 sftp 的工作代码?
此代码挂在 ssh.connect() 语句中:
""" 问题演示.py 从 paramiko 演示文件中删除。 此代码在 shell 中有效,但在我尝试导入时挂起! """ 从时间导入睡眠 导入操作系统 进口帕拉米科 sOutputFilename = "redacted.htm" #-- 有效负载文件 主机名 = "redacted.com" #### - 警告!嵌入式密码!尽快删除。 sUsername = "已编辑" sPassword = "已编辑" sTargetDir = "已编辑" #-- 获取主机密钥,如果我们知道的话。 主机键类型 = 无 主机键 = 无 主机键 = {} 尝试: host_keys = paramiko.util.load_host_keys(os.path.expanduser('~/.ssh/known_hosts')) 除了 IOError: 尝试: # 也试试 ~/ssh/,因为 windows 不能有一个名为 ~/.ssh/ 的文件夹 host_keys = paramiko.util.load_host_keys(os.path.expanduser('~/ssh/known_hosts')) 除了 IOError: print '*** 无法打开主机密钥文件' 主机键 = {} 如果 host_keys.has_key(主机名): hostkeytype = host_keys[主机名].keys()[0] hostkey = host_keys[hostname][hostkeytype] print '使用类型为 %s 的主机密钥' % hostkeytype ssh = paramiko.Transport((主机名, 22)) ssh.connect(username=sUsername, password=sPassword, hostkey=hostkey) sftp = paramiko.SFTPClient.from_transport(ssh) sftp.chdir(目标目录) sftp.put (sOutputFilename, sOutputFilename) ssh.close()