冬休みの間の流行の退屈さのために、私は自分で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 while(not(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アプリケーションアイコンの設定