2014-09-03 61 views
1

我写了一个程序,它将查看文本文件并将文件内的错误导出到另一个txt文件。然后程序通过sftp进入linux主机并将文件传输到特定位置。然而,运行此程序时,我得到一个错误:Python SFTP问题

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

其他错误:你创建'CSV。 reader()'和'csv.writer()'对象,但从不使用它们。你从来没有把任何数据放在'Errors.txt'文件中。 – 2014-09-03 18:09:28

回答

1

其他方式,你可以改变这样的进口线,

import pysftp as sftp 
... 
+0

这很好,你知道它为什么不写入我正在写的文件吗? – zooted 2014-09-03 18:43:10

1

在这一行:

s = sftp.Connection(...) 

您引用了一个名为sftp符号,正如错误消息说,尚未确定。

试试这个:

s = pysftp.Connection(...) 

有你的程序中的一些其他错误,但这种修复应该让你过去的第一个。

参考: