Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: carlos.foroelhaker en 28 Mayo 2012, 22:23 PM

Título: [Python] Ayuda linux
Publicado por: carlos.foroelhaker en 28 Mayo 2012, 22:23 PM
Hola estoi haciendo un script en bash
lo que pasa esque llego a un momento que el prompt de la terminal de ubuntu
me pide la contraseña y la tengo que introducir pero quiero hacer que todo el proceso sea automatizado asi que me gustaria saber

como enviar un valor o una cadena de texto al prompt del sistema.

Código (python) [Seleccionar]


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys

servidor="ftp://ftp.uv.es/"
os.system("sudo lftp -u " + servidor)




ahora con este pequeño script se puede acceder al servidor pues ahora quiero hacer un get para descargarme cualquier fichero pero sin tener que escribir el nombre del fichero que lo haga automaticamente el script

por ejemplo si hay un fichero que se llame " musica "

hacer que el script el envie al prompt get musica
Título: Re: [Python] Ayuda linux
Publicado por: overxfl0w13 en 30 Mayo 2012, 18:18 PM
Puedes probar con esto, aunque no haga uso del módulo os :)
Código (python) [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ftplib

class ftp:

def __init__(self):
self.ftp = raw_input("ftp>")
try:
self.conect = ftplib.FTP(self.ftp)
except:
print "No existe el ftp"
self.login()
def login(self):
self.user = raw_input("user>")
self.passw = raw_input("pass>")
try:
self.conect.login(self.user,self.passw)
except:
print "No son correctos"
self.x = 0
self.descarga()

def descarga(self):
for self.archivo in self.conect.nlst():
self.archivolocal = open("archivo"+str(self.x),"w")
self.conect.retrbinary('RETR '+self.archivo,self.archivolocal.write)
self.x += 1
self.archivolocal.close()
if __name__ == "__main__":
root = ftp()
root


Si el ftp está dividido en carpetas, no te lo va a dar por válido, únicamente lo hará si existen solo archivos :)