Debido al aburrimiento de la epidemia durante las vacaciones de invierno, aprendí Python solo y comencé después de unas pocas lecciones.
Todos los grandes del grupo están aprendiendo C ++, he leído el libro de Java y no sé si mi cuaderno ( vista web ) se puede abrir.
Hay muchas bibliotecas de Python, la sintaxis es simple, y luego aprendí algunas bibliotecas autónomas y de terceros.Puedo que aprenda matplotlib o numpy más tarde.
Primero adjunte la dirección a myftp (dirección github)
Esto implementa la transferencia de archivos de línea de comandos, utilizando la biblioteca paramiko (comando de descarga cmd: pip install -i https://pypi.douban.com/simple paramiko)
1 tiempo de importación 2 de get import ssh_server_get 3 de put import ssh_server_put 4 5 ip_or_hostname = input ( " $ Ingrese la IP o el nombre de host del servidor de destino: \ n $ " ) 6 print ( " Compruebe si el puerto del servidor 22 está abierto (no configurado necesidades de servicio ssh a configurarse, detalles, Baidu) " ) . 7 # las TODO Tip 8 # parámetros de línea de comandos para el módulo . 9 del time.sleep (2 ) 10 nombre de usuario = input ( " $ introducir nombre de usuario: \ n $ " ) . 11 Tiempo .sueño (2 ) 12 contraseña = input ( " $ Ingrese la contraseña de inicio de sesión: \ n $ " ) 13 time.sleep (2 ) 14 action = input ( " $ Seleccione la operación a realizar: g / p: \ n $ " ) 15 while ( no (action == " g " )) y ( no (action == " p " )): 16 action = input ( " $ error de entrada, vuelva a ingresar: g / p \ n $ " ) 17 time.sleep (2 ) 18 print ( " Su operación es:% s "% De acción) 19 # Si no se introduce una dirección por defecto es 20 # con los parámetros de línea de comandos al módulo 21 SI Acción == " G " : 22 remote_address la entrada = ( " dirección de la necesidad de descargar archivos $ de entrada del servidor de destino: \ n $ " ) 23 mientras remote_address es None: 24 remote_address = input ( " $ Vuelva a ingresar, no está vacío: \ n $ " ) 25 address = input ( " $ Ingrese la dirección de almacenamiento de archivos obtenida (si está vacía, es la dirección del directorio actual) : \ n $ " ) 26 print ( " Operación de ejecución-% s "% action) 27 ssh_server_get (ip_or_hostname, nombre de usuario, contraseña, dirección, remote_address) 28 29 elif action == " p " : 30 address = input ( " $ Ingrese la dirección del archivo a cargar: \ n $ " ) 31 mientras que la dirección es None : 32 address = input ( " $ Vuelva a ingresar, no está vacío: \ n $ " ) 33 remote_address = input ( " $ Ingrese la dirección del servidor de destino para almacenar el archivo (si está vacío, la dirección predeterminada \ home \ yourhostname): \ n $ " ) 34 print ( " Operación de ejecución-% s " % action) 35 ssh_server_put (ip_or_hostname, nombre de usuario, contraseña, dirección, remote_address) 36 37 time.sleep (2 ) 38 print ( " 操作 完成" )
Aquí es para hacer el trabajo de inicialización, porque quiero hacer algo como este software, el número de puerto se ha escrito como 22, porque es la línea de comando, originalmente quería hacer una biblioteca de progreso para la animación dinámica, y no sé cómo usar la asincio corutina. Dígame cómo mostrar animación mientras espera la transmisión.
import os import sys import paramiko from os.path import split, únete desde os import sep def ssh_server_put (ip_or_hostname: str, nombre de usuario: str, contraseña: str, dirección: str, remote_address: str) -> Ninguno: transport = paramiko.Transport ((ip_or_hostname, 22 )) transport.connect (nombre de usuario = nombre de usuario, contraseña = contraseña) sftp = paramiko.SFTPClient.from_transport (transporte) si remote_address es None: nombre = nombre de usuario archivo = división (dirección) [- 1 ] ruta = unirse ( ' / inicio ' , nombre, archivo) intente : sftp.put (dirección, ruta) excepto Excepción como e: print ( " No se puede conectar al servidor remoto, verifique la entrada: " ) sys.exit ( -1 ) más : intente : sftp.put (address, join (remote_address, split (address) [ -1 ])) excepto Excepción como e: print ( " No se puede conectar al servidor remoto, compruebe la entrada: " ) sys.exit ( -1 ) sftp.close ()
Primero cree el transporte y luego cree la conexión sftp
importar paramiko desde os.path importar dividir importar sys def ssh_server_get (ip_or_hostname: str, nombre de usuario: str, contraseña: str, dirección: str, remote_address: str) -> Ninguno: transport = paramiko.Transport ((ip_or_hostname, 22 )) transport.connect (nombre de usuario = nombre de usuario, contraseña = contraseña) sftp = paramiko.SFTPClient.from_transport (transport) # sftp.put ("1.txt", "/ home / siuwhat / Desktop / 1.txt") si la dirección es Ninguna: intente : sftp.get (remote_address, split (remote_address) [ -1 ]) excepto Excepción como e: print ( " No se puede conectar al servidor remoto, verifique la entrada: " ) sys.exit ( -1 ) más : intente : sftp.get (remote_address, address + split (remote_address) [-1 ]) excepto Excepción como e: print ( " No se puede conectar al servidor remoto, verifique la entrada: " ) sys.exit ( -1 ) sftp.close ()
Casi
Luego use pyinstaller, un enlace de descarga con paramiko, simplemente cambie el nombre de la biblioteca, si no lo cree, agregue el nombre de la biblioteca después de -i
Este es el comando pyinstaller
-F paquete en un exe
-w (no se usa aquí) no aparece cmd
-i Establecer icono de la aplicación