Software de auto escritura Python (1)

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

 

 

 

 

 

 

Supongo que te gusta

Origin www.cnblogs.com/otakus/p/pysoft1.html
Recomendado
Clasificación