Проблемы с Python SFTP

Я написал программу, которая просматривает текстовый файл и экспортирует ошибки внутри файла в другой текстовый файл. Затем программа переходит на Linux-хост через 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' не определено.

Кто-нибудь может помочь в этом?


person zooted    schedule 03.09.2014    source источник
comment
Другие ошибки: вы создаете объекты csv.reader() и csv.writer(), но никогда их не используете. Вы никогда не помещаете данные в файл Errors.txt.   -  person Robᵩ    schedule 03.09.2014


Ответы (2)


В противном случае вы можете изменить строку импорта следующим образом:

import pysftp as sftp
...
person Adem Öztaş    schedule 03.09.2014
comment
Это сработало отлично, знаете ли вы, почему он не записывает в файл, который я тоже пытаюсь записать? - person zooted; 03.09.2014

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

s = sftp.Connection(...)

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

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

s = pysftp.Connection(...)

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

Ссылка:

person Robᵩ    schedule 03.09.2014