日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

用 Python 代替 xftp 從 Linux 服務器下載文件

來源: 責編: 時間:2024-06-20 15:20:02 158觀看
導讀我們經常需要從Linux服務器上同步文件,但是xftp等工具都需要注冊了,這里用免費的Python代碼來下載文件,還可以擴展更多的自定義用法。準備工作本文需要使用paramiko庫,可以使用以下命令進行安裝:pip install paramiko下載

我們經常需要從Linux服務器上同步文件,但是xftp等工具都需要注冊了,這里用免費的Python代碼來下載文件,還可以擴展更多的自定義用法。RAD28資訊網——每日最新資訊28at.com

RAD28資訊網——每日最新資訊28at.com

準備工作

本文需要使用paramiko庫,可以使用以下命令進行安裝:RAD28資訊網——每日最新資訊28at.com

pip install paramiko

下載文件

先創建一個SSHClient對象,并設置缺失主機密鑰的策略為自動添加,然后使用connect方法連接到服務器。需要提供服務器IP地址、端口號、用戶名和密碼。連接成功后,打開SFTP通道,使用open_sftp方法創建SFTP對象。SFTP是SSH協議的一部分,用于在服務器和本地之間傳輸文件。使用SFTP對象的open方法打開要下載的遠程文件,并指定打開模式為只讀。假設要下載的文件是UTF-8編碼的文本文件,進行編碼轉換。下面是一個使用paramiko庫從Linux服務器上下載文件的示例代碼:RAD28資訊網——每日最新資訊28at.com

import paramiko    ssh = paramiko.SSHClient()  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  ssh.connect(hostname='your_server_ip', port=22, username='your_username', password='your_password')    sftp = ssh.open_sftp()  remote_file = sftp.open('/path/to/remote/file', 'r')   remote_file.read().decode('utf-8').encode('gbk')  

在上面的代碼中,將your_server_ip替換為您的Linux服務器的IP地址,your_username替換為用戶名,your_password替換為密碼,/path/to/remote/file替換為要下載的遠程文件的路徑,/path/to/local/file替換為要保存的本地文件的路徑。RAD28資訊網——每日最新資訊28at.com

保存文件

在本地創建一個文件對象,使用open方法打開,指定寫入模式,并將遠程文件的內容寫入本地文件。最后,關閉所有的文件對象、SFTP對象和SSH連接。RAD28資訊網——每日最新資訊28at.com

RAD28資訊網——每日最新資訊28at.com

local_file.write(remote_file.read().decode('utf-8'))    remote_file.close()  local_file.close()  sftp.close()  ssh.close()

文件是否存在

為了保證每次下載都是最新,如果存在就刪除后創建新文件,如果不存在就創建新文件。RAD28資訊網——每日最新資訊28at.com

# 檢查文件是否存在,如果不存在則創建  if not os.path.exists('/path/to/local/file'):      with open('/path/to/local/file', 'w') as f:          pass  # 創建空文件  # 打開本地文件,指定追加模式  local_file = open('/path/to/local/file', 'a')  

使用os.path.exists函數檢查文件是否存在,如果不存在則創建空文件。在打開本地文件時,指定模式為追加模式('a'),這樣可以在已有內容的基礎上追加新內容。RAD28資訊網——每日最新資訊28at.com

由于windows中文件是進程獨占,可能未釋放,會報錯:RAD28資訊網——每日最新資訊28at.com

    os.remove(local_path)PermissionError: [WinError 32] 另一個程序正在使用此文件,進程無法訪問。

可以使用文件對象的truncate()方法。該方法將文件截斷為指定的大小,若文件大小為零,所有內容都將被刪除。RAD28資訊網——每日最新資訊28at.com

with open('file.txt', 'w') as file:      file.truncate(0)

使用with語句打開文件file.txt,并將文件對象分配給變量file,調用truncate(0)方法以將文件截斷為零,刪除文件中的所有內容。此方法僅適用于文本文件。如果要清除二進制文件的內容,可以使用類似的方法,但是需要將文件對象打開為二進制模式(例如'wb')。RAD28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-95150-0.html用 Python 代替 xftp 從 Linux 服務器下載文件

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用「設計模式」巧妙解決 BUG 的經歷,妙啊~

下一篇: 用了這個庫,命令行再也不黑不溜秋了

標簽:
  • 熱門焦點
  • Java NIO內存映射文件:提高文件讀寫效率的優秀實踐!

    Java的NIO庫提供了內存映射文件的支持,它可以將文件映射到內存中,從而可以更快地讀取和寫入文件數據。本文將對Java內存映射文件進行詳細的介紹和演示。內存映射文件概述內存
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 為什么你不應該使用Div作為可點擊元素

    按鈕是為任何網絡應用程序提供交互性的最常見方式。但我們經常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過這樣做,我們錯過了許多內置瀏覽器的功能。
  • 中國家電海外掘金正當時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態LT(ID:LingTai_LT)2023年,出海市場戰況空前,中國創業者在海外紛紛摩拳擦掌,以期能夠把中國的商業模式、創業理念、戰略打法輸出海外,他們依
  • 得物寵物生意「狂飆」,發力“它經濟”

    作者|花花小萌主近日,得物宣布正式上線寵物鑒別,通過得物App內的“在線鑒別”,可找到鑒別寵物的選項。通過上傳自家寵物的部位細節,就能收獲擁有專業資質認證的得物鑒
  • 上海舉辦人工智能大會活動,建設人工智能新高地

    人工智能大會在上海浦江兩岸隆重拉開帷幕,人工智能新技術、新產品、新應用、新理念集中亮相。8月30日晚,作為大會的特色活動之一的上海人工智能發展盛典人工
  • 外交部:美方應停止在網絡安全問題上不負責任地指責他國

      中國外交部今天(16日)舉行例行記者會。會上,有記者問,美國情報官員稱,他們正在阻攔來自中國以及其他國家的黑客獲取相關科研成果。 中方對此有何評論?對此
Top 主站蜘蛛池模板: 思南县| 桂林市| 屯门区| 道孚县| 大连市| 奉新县| 九龙坡区| 巫溪县| 马鞍山市| 贡嘎县| 永康市| 宣化县| 西峡县| 秦安县| 克拉玛依市| 滦南县| 桐城市| 金坛市| 桂林市| 紫金县| 南漳县| 民县| 湖北省| 阳春市| 星子县| 铁岭县| 东乌珠穆沁旗| 集贤县| 霍林郭勒市| 康保县| 平塘县| 铅山县| 克拉玛依市| 花垣县| 宜兴市| 普定县| 霍城县| 石台县| 德州市| 南郑县| 澳门|