Python SFTP问题

时间:2014-09-03 17:39:52

标签: python sftp pysftp

我编写了一个程序,它将查看文本文件并将文件中的错误导出到另一个txt文件。然后程序通过sftp转到linux主机并将文件传输到特定位置。但是,我在运行此程序时遇到错误:

import os
import sys
import csv
import pysftp 

with open('c:/Python27/log_07032014_1512.txt','r') as inf,    
    open('C:/Python27/Errors.txt','w')as outf:
    reader = csv.reader(inf)
    writer = csv.writer(outf)
    for line in inf:
        if 'Error' in line:
            print line

def sftpExample():
    try:
        s = sftp.Connection('***.***.***.***', username = '******', password = '****')
        remotepath ='/home/*****/BOA.txt'
        localpath = 'C:/Python27/Errors.txt'
        s.put(localpath,remotepath)

        s.close()
    except Exception, e:
        print str(e)

sftpExample()

读取然后尝试传输文件时出现以下错误:

全球名称' sftp'没有定义。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

在这一行:

s = sftp.Connection(...)

您引用了一个名为sftp的符号,正如错误消息所示,该符号尚未定义。

请改为尝试:

s = pysftp.Connection(...)

您的程序中还有其他一些错误,但是此修复程序应该会让您超过第一个错误。

参考:

答案 1 :(得分:1)

其他方式,你可以改变这样的导入行,

import pysftp as sftp
...