当前位置: 移动技术网 > IT编程>脚本编程>Python > python自写软件(一)

python自写软件(一)

2020年04月23日  | 移动技术网IT编程  | 我要评论

电影台,61go,浙江高速违章查询网

寒假因为疫情闲的无聊,自学了python,随便跟了几节课就入手了

群里大佬都在学c++,我java那本书已经看完了,  (web 视图)不知道能不能打开。

python的库多,语法简单,然后又学了一些自带库和第三方库,之后可能要学matplotlib或者numpy,pyqt5还在学,但是想要实现的轮子有很多

先把地址附上

这实现了命令行的文件传输,用了paramiko库 (cmd下载命令:pip install -i https://pypi.douban.com/simple paramiko)

 1 import time
 2 from get import ssh_server_get
 3 from put import ssh_server_put
 4 
 5 ip_or_hostname = input("$ 请输入目标服务端的ip或主机名:\n$ ")
 6 print("请检查服务器端口22是否打开(未配置的需要配置ssh服务,详请百度)")
 7 # todo 提示
 8 # 用命令行模块给参数
 9 time.sleep(2)
10 username = input("$ 请输入用户名:\n$ ")
11 time.sleep(2)
12 password = input("$ 请输入登录密码:\n$ ")
13 time.sleep(2)
14 action = input("$ 请选择执行的操作:g/p:\n$ ")
15 while (not (action == "g")) and (not (action == "p")):
16     action = input("$ 输入错误,请重新输入:g/p\n$ ")
17 time.sleep(2)
18 print("您的操作是:%s  " % action)
19 # 若未输入则默认地址
20 # 用命令行模块给参数
21 if action == "g":
22     remote_address = input("$ 输入需要从目标服务端下载的文件的地址:\n$ ")
23     while remote_address is none:
24         remote_address = input("$ 请重新输入,不得为空:\n$ ")
25     address = input("$ 输入获得的文件存放地址(为空则为当前目录地址):\n$ ")
26     print("正在执行操作-- %s  " % action)
27     ssh_server_get(ip_or_hostname, username, password, address, remote_address)
28 
29 elif action == "p":
30     address = input("$ 输入需要上传的文件地址:\n$ ")
31     while address is none:
32         address = input("$ 请重新输入,不得为空:\n$ ")
33     remote_address = input("$ 输入目标服务端存放文件的地址(为空则为默认地址\home\yourhostname):\n$ ")
34     print("正在执行操作-- %s  " % action)
35     ssh_server_put(ip_or_hostname, username, password, address, remote_address)
36 
37 time.sleep(2)
38 print("操作完成")

这里是做初始化工作,因为要做的像这个软件,端口号已经写了22,因为是命令行,本来想做成动态动画用progress库,用asyncio协程也不知道怎么做,知道的大佬告诉我怎么边等待传输边显示动画

 

 

 

import os
import sys
import paramiko
from os.path import split, join
from os import sep


def ssh_server_put(ip_or_hostname: str, username: str, password: str, address: str,
                   remote_address: str) -> none:
    transport = paramiko.transport((ip_or_hostname, 22))
    transport.connect(username=username, password=password)
    sftp = paramiko.sftpclient.from_transport(transport)

    if remote_address is none:
        name = username
        file = split(address)[-1]
        path = join('/home', name, file)
        try:
            sftp.put(address, path)
        except exception as e:
            print("无法连接远程服务端,请检查输入:")
            sys.exit(-1)

    else:
        try:
            sftp.put(address, join(remote_address, split(address)[-1]))
        except exception as e:
            print("无法连接远程服务端,请检查输入:")
            sys.exit(-1)
    sftp.close()

先创建transport 然后创建连接sftp

import paramiko
from os.path import split
import sys


def ssh_server_get(ip_or_hostname: str, username: str, password: str, address: str,
                   remote_address: str) -> none:
    transport = paramiko.transport((ip_or_hostname, 22))
    transport.connect(username=username, password=password)
    sftp = paramiko.sftpclient.from_transport(transport)
    # sftp.put("1.txt","/home/siuwhat/desktop/1.txt")
    if address is none:
        try:
            sftp.get(remote_address, split(remote_address)[-1])
        except exception as e:
            print("无法连接远程服务端,请检查输入:")
            sys.exit(-1)
    else:
        try:
            sftp.get(remote_address, address + split(remote_address)[-1])
        except exception as e:
            print("无法连接远程服务端,请检查输入:")
            sys.exit(-1)
    sftp.close()

差不多的

然后使用pyinstaller,跟paramiko一个下载链接,把库名换了就好,如果不信就在-i 后加库名

 

这是pyinstaller命令

-f 打包成一个exe

-w(这里没用到)不弹出cmd

-i 设置应用图标

 

 

 

 

 

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网