我编写了一个程序,它将查看文本文件并将文件中的错误导出到另一个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'没有定义。
有人可以帮忙吗?
答案 0 :(得分:1)
在这一行:
s = sftp.Connection(...)
您引用了一个名为sftp
的符号,正如错误消息所示,该符号尚未定义。
请改为尝试:
s = pysftp.Connection(...)
您的程序中还有其他一些错误,但是此修复程序应该会让您超过第一个错误。
参考:
答案 1 :(得分:1)
其他方式,你可以改变这样的导入行,
import pysftp as sftp
...