Python上傳Windows目錄文件到遠程Linux(虛擬機)目錄

import os
import time

import paramiko


# connect函數中,參數是一個主機的IP地址或者是主機名稱,
# 在執行這個方法之後,如果成功的連接到服務器,那麼就會返回一個sshclient對象
def connect(host):
    # 建立一個SSHClient的對象
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host, 22, username='root', password='123456')
    return ssh


# 上傳文件
# 一個是連接對象conn,一個是上傳的文件名稱,一個上傳之後的文件名稱,在此必須寫入完整的文件名稱包括路徑。
# 做法主要是打開一個sftp對象,然後使用put方法進行上傳文件,最後關閉sftp連接,最後返回一個上傳的文件名稱的完整路徑
def copy_module(conn, inpath, outpath):
    ftp = conn.open_sftp()
    ftp.put(inpath, outpath)
    print(inpath, outpath)
    ftp.close()
    return True


if __name__ == '__main__':
    remote_connect = connect('192.168.128.139')
    local_dir = r"D:\MyProject\Python\workspace\locrecord2"
    remote_dir = r"/root/locrecord2/"
    file_list = os.listdir(local_dir)
    start = time.time()
    for file in file_list:
        local_file_path = os.path.join(local_dir, file)
        remote_file_path = os.path.join(remote_dir, file)
        copy_module(remote_connect, local_file_path, remote_file_path)
        # 建議不要直接把connect('192.168.128.139')作爲copy_module的參數,不然每次傳輸都重新連接會很慢
    end = time.time()
    print("time cost {:.2f} s".format(end - start))
"D:\Program Files\Python36\python3.exe" D:/MyProject/Python/workspace/scp_file.py
D:\MyProject\Python\workspace\locrecord2\o2020033114524219580127.wav /root/locrecord2/o2020033114524219580127.wav
............................................
D:\MyProject\Python\workspace\locrecord2\o2020041316223255340123.wav /root/locrecord2/o2020041316223255340123.wav
D:\MyProject\Python\workspace\locrecord2\o2020041316593417380127.wav /root/locrecord2/o2020041316593417380127.wav
time cost 19.19 s

Process finished with exit code 0
[root@master locrecord2]# pwd
/root/locrecord2
[root@master locrecord2]# ll
total 404264
-rw-r--r--. 1 root root  4975738 Apr 27 15:30 o2020033114524219580127.wav
-rw-r--r--. 1 root root  3140698 Apr 27 15:30 o2020033115092621050123.wav
-rw-r--r--. 1 root root  4717658 Apr 27 15:30 o2020033117024385870124.wav
............................................

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章