2014-09-03 3 views
1

Я написал программу, которая будет смотреть на текстовый файл и экспортировать ошибки в файл в другой файл txt. Затем программа переходит к хосту linux через sftp и передает файл в определенное место. Тем не менее, при выполнении этой программы я получаю сообщение об ошибке:Проблемы с SFTP Python

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'. –

ответ

1

Другой путь, вы можете изменить импортную линию, как это,

import pysftp as sftp 
... 
+0

Это сработало отлично, вы знаете, почему его не пишут в файл, который я тоже пытаюсь написать? – zooted

1

В этой строке:

s = sftp.Connection(...) 

ссылке на символ, называемый sftp, который, как говорится в сообщении об ошибке, не был определен.

Попробуйте вместо этого:

s = pysftp.Connection(...) 

Есть некоторые другие ошибки в вашей программе, но это исправление должно получить мимо первого.

Ссылка:

Смежные вопросы