2

我编写了一个程序,它将查看一个文本文件并将文件中的错误导出到另一个 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”。

有人可以帮忙吗?

4

2 回答 2

2

否则,您可以像这样更改导入行,

import pysftp as sftp
...
于 2014-09-03T18:09:49.997 回答
1

在这一行:

s = sftp.Connection(...)

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

试试这个:

s = pysftp.Connection(...)

您的程序中还有一些其他错误,但是此修复程序应该可以帮助您克服第一个错误。

参考:

于 2014-09-03T18:04:02.723 回答