2014-09-03 62 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(...) 

有你的程序中的一些其他錯誤,但這種修復應該讓你過去的第一個。

參考: