国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python3:四種常見(jiàn)方式從遠(yuǎn)程服務(wù)器下載文件(paramiko、requests、wget、urllib2)

這篇具有很好參考價(jià)值的文章主要介紹了python3:四種常見(jiàn)方式從遠(yuǎn)程服務(wù)器下載文件(paramiko、requests、wget、urllib2)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

paramiko

下載一個(gè)文件夾時(shí),便可以使用這個(gè)方法,paramiko模塊提供了ssh及sftp進(jìn)行遠(yuǎn)程登錄服務(wù)器執(zhí)行命令和上傳下載文件的功能。這是一個(gè)第三方的軟件包,使用之前需要先進(jìn)行安裝

pip install paramiko
import paramiko
import os
from stat import S_ISDIR as isdir


def down_from_remote(sftp_obj, remote_dir_name, local_dir_name):
    """遠(yuǎn)程下載文件"""
    remote_file = sftp_obj.stat(remote_dir_name)
    if isdir(remote_file.st_mode):
        # 文件夾,不能直接下載,需要繼續(xù)循環(huán)
        check_local_dir(local_dir_name)
        print('開(kāi)始下載文件夾:' + remote_dir_name)
        for remote_file_name in sftp.listdir(remote_dir_name):
            sub_remote = os.path.join(remote_dir_name, remote_file_name)
            sub_remote = sub_remote.replace('\\', '/')
            sub_local = os.path.join(local_dir_name, remote_file_name)
            sub_local = sub_local.replace('\\', '/')
            down_from_remote(sftp_obj, sub_remote, sub_local)
    else:
        # 文件,直接下載
        print('開(kāi)始下載文件:' + remote_dir_name)
        sftp.get(remote_dir_name, local_dir_name)


def check_local_dir(local_dir_name):
    """本地文件夾是否存在,不存在則創(chuàng)建"""
    if not os.path.exists(local_dir_name):
        os.makedirs(local_dir_name)


if __name__ == "__main__":
    """程序主入口"""
    # 服務(wù)器連接信息
    host_name = '10.xx.xx.xx'
    user_name = 'xx'
    password = '***'
    port = 22
    # 遠(yuǎn)程文件路徑(需要絕對(duì)路徑)
    remote_dir = '/opt/xxx090731625.html'
    # 本地文件存放路徑(絕對(duì)路徑或者相對(duì)路徑都可以)
    local_dir = '/opt/xxxx1625.html'

    # 連接遠(yuǎn)程服務(wù)器
    t = paramiko.Transport((host_name, port))
    t.connect(username=user_name, password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    # 遠(yuǎn)程文件開(kāi)始下載
    down_from_remote(sftp, remote_dir, local_dir)
    # 關(guān)閉連接
    t.close()


requests

默認(rèn)會(huì)立即下載文件內(nèi)容并保存到內(nèi)存中,如果文件很大,會(huì)給內(nèi)存造成壓力

import requests
url = 'https://www.python.org/static/img/python-logo@2x.png'
res = requests.get(url)

# 將文件寫(xiě)入pythonimage.png這個(gè)文件中,保存在當(dāng)前程序運(yùn)行的目錄
with open('pythonimage.png', 'wb') as f:
    f.write(res.content)

#寫(xiě)入本地磁盤(pán)文件
open('c:/users/LikeGeeks/downloads/PythonImage.png', 'wb').write(res.content)

如果文件很大,會(huì)給內(nèi)存造成壓力,設(shè)置stream參數(shù)為T(mén)rue,這樣,只有當(dāng)我們遍歷iter_content時(shí)才會(huì)進(jìn)行數(shù)據(jù)下載

由于文件內(nèi)容是分塊下載的,因此,可以使用進(jìn)度條來(lái)觀察下載的進(jìn)度(使用clint模塊來(lái)顯示下載進(jìn)度)

import requests
from clint.textui import progress

url = 'https://www.python.org/ftp/python/3.8.1/python-3.8.1-macosx10.9.pkg'
res = requests.get(url, stream=True)
total_length = int(res.headers.get('content-length'))

with open("py.pkg", "wb") as pypkg:
    for chunk in progress.bar(res.iter_content(chunk_size=1024), expected_size=(total_length/1024) + 1, width=100):
        if chunk:
            pypkg.write(chunk)
# 寫(xiě)入本地磁盤(pán)文件
open('c:/users/LikeGeeks/downloads/PythonImage.png', 'wb').write(res.content)

wget

下載wget庫(kù)

pip install wget
import wget
import ssl

# 取消ssl全局驗(yàn)證
ssl._create_default_https_context = ssl._create_unverified_context

url = 'https://www.python.org/static/img/python-logo@2x.png'
wget.download(url, 'pythonlogo.png')

urllib2

import urllib2

url = 'https://www.python.org/static/img/python-logo@2x.png' 
f = urllib2.urlopen(url) 
data = f.read() 
with open("pythonimage.png", "wb") as code:     
    code.write(data)

可以縮寫(xiě)成文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-604139.html

f = urllib2.urlopen(url) 
with open("pythonimage.png", "wb") as code:
   code.write(f.read())

到了這里,關(guān)于python3:四種常見(jiàn)方式從遠(yuǎn)程服務(wù)器下載文件(paramiko、requests、wget、urllib2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 傳奇服務(wù)器常見(jiàn)的網(wǎng)絡(luò)攻擊方式有哪些?-版本被攻擊

    傳奇服務(wù)器常見(jiàn)的網(wǎng)絡(luò)攻擊方式有哪些?-版本被攻擊

    常見(jiàn)的網(wǎng)絡(luò)攻擊方式有哪些?常見(jiàn)的網(wǎng)絡(luò)攻擊方式 :端口掃描,安全漏洞攻擊,口令入侵,木馬程序,電子郵件攻擊,Dos攻擊。 1.傳奇服務(wù)器端口掃描: 通過(guò)端口掃描可以知道被掃描計(jì)算機(jī)開(kāi)放了哪些服務(wù)和端口,以便發(fā)現(xiàn)其弱點(diǎn),可以手動(dòng)掃描,也可以使用端口掃描軟件

    2024年02月04日
    瀏覽(17)
  • 有哪些方式可以讓Mac連接遠(yuǎn)程服務(wù)器?

    有哪些方式可以讓Mac連接遠(yuǎn)程服務(wù)器?

    Mac 使用Shell(終端) ssh 連接遠(yuǎn)程 服務(wù)器 初次用Mac做遠(yuǎn)程維護(hù)的同學(xué),可能都會(huì)在網(wǎng)上找各種Mac上可用的ssh軟件,但是大家可能不知道,Mac自帶遠(yuǎn)程連接工具!。 下面介紹兩個(gè)方法: 一、方法一:直接用命令行連接 第一步:打開(kāi)Mac的終端 第二步:在終端輸入 ssh -p 端口號(hào) 服務(wù)

    2024年02月06日
    瀏覽(21)
  • centos服務(wù)器系統(tǒng)下安裝python3并與自帶的python2

    centos服務(wù)器系統(tǒng)下安裝python3并與自帶的python2

    在centos中,自帶有python2,因此需要經(jīng)常安裝python3。但是這里有一個(gè)坑,就是centos的yum是用python2寫(xiě)的,如果正常編譯安裝python3,那么yum就會(huì)直接掛了。為了方便以后編譯安裝python3,不用天天去網(wǎng)上找教程僅供參考。 (因平臺(tái)原因本文中www即為xxx ,com即為zzz,http/ccccc即為c

    2024年02月11日
    瀏覽(28)
  • pycharm 連接遠(yuǎn)程服務(wù)器的兩種方式 ssh Remote

    pycharm 連接遠(yuǎn)程服務(wù)器的兩種方式 ssh Remote

    按服務(wù)器信息填寫(xiě) 在mapping欄下設(shè)置本地和遠(yuǎn)程倉(cāng)庫(kù) (如果已經(jīng)進(jìn)入某個(gè)項(xiàng)目,可以選擇Close Project退出至該頁(yè)面) 按需配置服務(wù)器 右下角點(diǎn)擊現(xiàn)在的環(huán)境名,點(diǎn)擊Add New Interpreter -- Add Local Interpreter;選擇已有的Conda環(huán)境。

    2024年02月07日
    瀏覽(31)
  • linux+python3.6.8+uwsgi+postgresql+django部署web服務(wù)器

    linux+python3.6.8+uwsgi+postgresql+django部署web服務(wù)器

    我這是使用華為云服務(wù)器

    2024年02月06日
    瀏覽(51)
  • Mysql四種常見(jiàn)備份表方式,歷史表

    1、將表備份到物理機(jī) 2、將表備份在庫(kù)里面(create復(fù)制表結(jié)構(gòu)、insert復(fù)制表內(nèi)容) 3、將表備份在庫(kù)里面(create table as備份) 注:與2步驟備份在庫(kù)里面不同的是 as 備份表不會(huì)備份主鍵和外鍵,只備份表數(shù)據(jù) 4、大家都知道日志文件,具有“只追加寫(xiě)不修改”的屬性,歷史表和

    2024年02月04日
    瀏覽(16)
  • ubuntu 使用 rsync 的 SSH 方式同步備份遠(yuǎn)程WEB服務(wù)器

    ubuntu 20.04 自帶 rsync ,對(duì)于 WEB 服務(wù)器這種更新頻率不高的情況,直接使用定時(shí)同步復(fù)制遠(yuǎn)程服務(wù)器的方法,比較直接和簡(jiǎn)單! $ rsync --version rsync version 3.1.3 protocol version 31 參考: Ubuntu20.04中的rsync命令 本次主要使用 SSH 方式來(lái)完成,抄錄一下參考文章 遠(yuǎn)程 ubuntu 2004 server 192.

    2024年02月15日
    瀏覽(23)
  • 密碼學(xué)---常見(jiàn)的四種密碼攻擊方式

    密碼學(xué)---常見(jiàn)的四種密碼攻擊方式

    已知部分密文和加密算法,依次采用所有的密鑰進(jìn)行試譯。 1、截獲的部分密文 2、加密算法 由于掌握的資源少,一般采用窮舉攻擊。 經(jīng)不起唯密文攻擊的密碼一般認(rèn)為是不安全的。 攻擊者能從已知的明文被變換成密文的方式中獲得密鑰 1、截獲的部分密文 2、加密算法 3、已

    2024年02月07日
    瀏覽(23)
  • 從創(chuàng)建文件開(kāi)始,使用git clone方式把代碼上傳到服務(wù)器上,并配置好環(huán)境(Pycharm遠(yuǎn)程連接服務(wù)器來(lái)跑代碼第二種方式)

    從創(chuàng)建文件開(kāi)始,使用git clone方式把代碼上傳到服務(wù)器上,并配置好環(huán)境(Pycharm遠(yuǎn)程連接服務(wù)器來(lái)跑代碼第二種方式)

    本文是在這篇[關(guān)于git clone http://xxxxxxxxxxx報(bào)錯(cuò)的問(wèn)題]基礎(chǔ)上,擴(kuò)展把代碼放到服務(wù)器上運(yùn)行 想知道為什么使用git clone報(bào)錯(cuò)的同學(xué)可以去瞅瞅 以下工作都是建立在創(chuàng)建好虛擬環(huán)境的基礎(chǔ)上 創(chuàng)建虛擬環(huán)境直接使用 具體文章以前也寫(xiě)過(guò)了點(diǎn)我傳送 首先要準(zhǔn)備一個(gè)文件夾,專(zhuān)門(mén)用

    2024年02月03日
    瀏覽(28)
  • Python3通過(guò)串口服務(wù)器讀取設(shè)備Modbus數(shù)據(jù)【modbus_rtu_over_tcp】

    Python3通過(guò)串口服務(wù)器讀取設(shè)備Modbus數(shù)據(jù)【modbus_rtu_over_tcp】

    工業(yè)采集設(shè)備支持ModbusRtu 協(xié)議,通訊端口為232串口 或485接口,上位機(jī)連接采集終端,不方便走線【串口線 、485總線】,利用現(xiàn)有網(wǎng)絡(luò),通過(guò)串口服務(wù)器進(jìn)行連接。 實(shí)現(xiàn)方案: 1、虛擬串口,上位機(jī)通過(guò)串口直接采集數(shù)據(jù), 缺點(diǎn):需要安裝、開(kāi)啟虛擬串口程序,增加不穩(wěn)定因

    2024年02月11日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包