Python自己記述ソフトウェア(1)

冬休みの間の流行の退屈さのために、私は自分でPythonを学び、ほんのいくつかのレッスンの後に始めました。

グループの大物はすべてC ++を学んでおり、Javaの本を読んだことがあり、自分のノートブック   (Webビュー)を開くことができるかどうかわかりません。

多くのpythonライブラリがあり、構文はシンプルで、いくつかの自己完結型ライブラリとサードパーティライブラリを学習しました。その後、matplotlibまたはnumpyを学習する必要があるかもしれません。Pyqt5はまだ学習していますが、達成したい多くのホイールがあります。

最初にアドレスをmyftp(githubアドレス)に添付します

これは、paramikoライブラリを使用して、コマンドラインファイル転送を実装します(cmdダウンロードコマンド:pip install -i https://pypi.douban.com/simple paramiko)

。1  インポート時間
 2  から GET インポートssh_server_get
 3。 から PUT インポートssh_server_put
 4。 
5。 ip_or_hostnameは(INPUTを= " $サーバ側のIPまたはホスト名を入力します。\ N- $を" 。6  印刷サーバのポート22を確認してくださいオープン(構成されていませんSSHサービスの設定する必要があり、詳細については、してください百度)" 7つの。 TODOヒント
8つの #のモジュールにコマンドラインパラメータ
9。 time.sleep(2 10名=入力(" $ユーザー名を入力します。\ N- $ " 。11時間.sleep(2 12 password = input(" $ログインパスワードを入力してください:\ n $ " 13 time.sleep(2 14 action = input(" $実行する操作を選択してください:g / p:\ n $ " 15  whilenot(action == " g "))およびnot(action == " p " )):
 16      action = input(" $ input error、please re-enter:g / p \ n $ " 17 time.sleep(2 18  print" あなたの操作は:%s   "%のアクション)
 19  デフォルトのアドレスを入力しない場合は、
20  モジュールへのコマンドラインパラメータを持つ
21  IFアクション== G 22      REMOTE_ADDRESS INPUT =(" \ nは$:アドレスをダウンロードする必要が$ターゲットサーバからの入力をファイル23      ながら REMOTE_ADDRESSはありませんなし:
 24          REMOTE_ADDRESS入力=($再入力してください、空にすることはできません:\ N- $ 25の      アドレス入力=(ストレージ・アドレスを取得したファイル$入力(アドレスが現在のディレクトリに比べて空です) :\ 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(" $ Enter the file of the address to upload:\ n $ " 31      while address is None :
 32          address = input(" $再入力してください。空ではありません:\ n $ " 33      remote_address = input(" $ファイルを保存するターゲットサーバーのアドレスを入力してください(空の場合、デフォルトアドレス\ home \ yourhostname):\ n $ " 34      print" Executing operation-%s  "action)
 35      ssh_server_put(ip_or_hostname、username、password、address、remote_address)
 36  
37 time.sleep(2 38  print" 操作完了"

これは初期化作業を行うためのものです。このソフトウェアのようにしたいので、ポート番号は22と書かれています。これはコマンドラインであるため、動的アニメーションの進行状況ライブラリを作成したかったのですが、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)
        例外を除いてe:
             print" リモートサーバーに接続できません。チェック入力:" 
            sys.exit( -1 

    試してみる
            sftp.put(アドレス、参加(REMOTE_ADDRESS、スプリット(アドレス)[ -1 ]))
         を除き、例外としてE:
             印刷"リモートサーバーに接続できません。入力を確認してください:" 
            sys.exit( -1 
    sftp.close()

最初にトランスポートを作成し、次に接続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")
    アドレスNoneの場合試す
            sftp.get(remote_address、split(remote_address)[ -1 ])
         例外を除くe:
             print" リモートサーバーに接続できません。入力を確認してください:" 
            sys.exit( -1 else try 
            sftp.get( remote_address、address + split(remote_address)[-1 ])
         例外を除くe:
             print" リモートサーバーに接続できません。入力を確認してください:" 
            sys.exit( -1 
    sftp.close()

ほとんど

次に、paramikoのダウンロードリンクであるpyinstallerを使用し、ライブラリ名を変更します。信じられない場合は、-iの後にライブラリ名を追加してください。

 

これはpyinstallerコマンドです

-Fパッケージをexeに

-w(ここでは使用しません)はポップアップしませんcmd

-iアプリケーションアイコンの設定

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/otakus/p/pysoft1.html