亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python 從遠程批量下載文件到本地

系統 3047 0

需求:

1、從postgresql數據庫中查出附件名稱

2、從遠程服務器下載對應的附件

用到的python模塊paramiko、psycopg2。

paramiko是用python寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的連接。利用該模塊,可以方便的進行ssh連接和sftp協議進行sftp文件傳輸以及遠程命令執行。
psycopg2是python的postgresql數據庫接口,可以對數據庫進行操作。

            conndb.py文件代碼功能是連接數據庫,查詢附件的名稱,用于拼接地址。
          
            
              import psycopg2

def conn_db():
    # database,user,password,host,port分別對應要連接的PostgreSQL數據庫的數據庫名、數據庫用戶名、用戶密碼、主機、端口信息
    conn = psycopg2.connect(database="h", user="oe", password="1234", host="10.18.xxx.xxx", port="5432")
    cursor = conn.cursor()
    # 執行查詢命令
    cursor.execute("select store_fname,datas_fname from contract_attachment where contract_interview_id in(select id from hr_re)")

    result = cursor.fetchall()
    print(result)
    # cursor.close()   #關閉游標
    conn.close()     #關閉連接
    return result
            
          
            download.py進行連接服務器和下載文件的操作
          
            
              from conndb import conn_db
import os
import re
import logging
import paramiko
import base64

_logger = logging.getLogger(__name__)
PATH = '/hr/openerp8/openerp/'
LOCATION='file:///filestore'
dbname='h'

def full_path(path):
    # location = 'file:filestore'
    assert LOCATION.startswith('file:'), "Unhandled filestore location %s" % LOCATION
    location = LOCATION[5:]

    # sanitize location name and path
    location = re.sub('[.]', '', location)
    location = location.strip('/\\')

    path = re.sub('[.]', '', path)
    path = path.strip('/\\')
    res_path =os.path.join(PATH, location, dbname, path)
    return  res_path.replace('\\','/')


def data_get(data):
    result = []

    bin_size = False
    for attach in data:
        # f_path = None
        if LOCATION and attach[0]:
            f_path = full_path(attach[0])
            result.append(f_path)
            # os.remove(f_path)

    return result



def RemoteScp(host_ip, host_port, host_username, host_password, remote_file, local_file):
    scp = paramiko.Transport((host_ip, host_port))
    scp.connect(username=host_username, password=host_password)
    sftp = paramiko.SFTPClient.from_transport(scp)
    for file in remote_file:
        file_path,filename =os.path.split(file)
        sftp.get(file, local_file+'/'+filename)
    scp.close()
    return ("success")

if __name__ == '__main__':
    ip="10.18.xxx.xxx"
    user="root"
    passwd="1234"
    host_port = 22

    data = conn_db() #取文件名集合
    all_file = data_get(data)
    local_path = 'F:/ProjectTrain/download_file/att'

    RemoteScp(ip, host_port, user, passwd, all_file, local_path)


            
          

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 羞羞网站在线播放 | 精品久久久久久中文字幕一区 | 自拍 欧美 在线 综合 另类 | 欧美日韩一区二区不卡三区 | 亚洲视频中文字幕在线观看 | 欧美拍拍视频 | 国产精品1区2区3区 国产精品1区2区3区在线播放 | 999国内精品永久免费视频 | 一级毛片私人影院 | 色婷婷精品大视频在线蜜桃视频 | 五月激情综合网 | 欧美日韩国产亚洲一区二区 | 日日摸夜夜嗷嗷叫日日拍 | 中文字幕国产日韩 | 美女一级毛片免费观看 | 国产精品欧美一区二区三区不卡 | 亚洲国产精品免费视频 | 亚洲一区精品视频在线 | 国产在线播放一区二区 | 香蕉视频网站免费观视频 | 国产激情一区二区三区四区 | 欧美xxx午夜免费视频 | 久久99热只有频精品6不卡 | 99久久精品免费看国产情侣 | 4htv影院永久免费在线地址 | 四虎成人精品在永久免费 | 操久在线 | 亚洲欧洲成人 | 深夜福利免费观看 | 国产亚洲综合在线 | 久久98精品久久久久久婷婷 | 黑人超长巨大xxxxxxx视频 | 久久久久综合中文字幕 | 色老师| 97在线视 | 国产亚洲精品一区久久 | a毛片在线播放 | 99国内精品久久久久久久 | 一区二区三区在线观看视频 | 亚洲欧美色综合自拍 | 国产日韩欧美综合一区二区三区 |