成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 Linux
我們經常需要從Linux服務器上同步文件,但是xftp等工具都需要注冊了,這里用免費的Python代碼來下載文件,還可以擴展更多的自定義用法。

我們經常需要從Linux服務器上同步文件,但是xftp等工具都需要注冊了,這里用免費的Python代碼來下載文件,還可以擴展更多的自定義用法。

準備工作

本文需要使用paramiko庫,可以使用以下命令進行安裝:

pip install paramiko

下載文件

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

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替換為要保存的本地文件的路徑。

保存文件

在本地創建一個文件對象,使用open方法打開,指定寫入模式,并將遠程文件的內容寫入本地文件。最后,關閉所有的文件對象、SFTP對象和SSH連接。

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

文件是否存在

為了保證每次下載都是最新,如果存在就刪除后創建新文件,如果不存在就創建新文件。

# 檢查文件是否存在,如果不存在則創建  
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'),這樣可以在已有內容的基礎上追加新內容。

由于windows中文件是進程獨占,可能未釋放,會報錯:

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

可以使用文件對象的truncate()方法。該方法將文件截斷為指定的大小,若文件大小為零,所有內容都將被刪除。

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

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

責任編輯:趙寧寧 來源: Python技術
相關推薦

2024-06-19 10:43:44

2020-10-25 16:53:56

Linux 開源操作系統

2021-01-28 17:46:13

服務器遠程Xshell

2013-03-15 10:54:39

服務器RubyRails

2013-03-14 09:42:58

GoRuby

2021-06-04 13:07:53

LinuxPythonXshell

2014-01-02 15:16:42

PythonLinux服務器服務器監控

2010-12-17 09:22:01

Linux服務器性能監控Munin

2011-03-21 15:45:55

ClusterSSH管Linux服務器

2016-11-18 15:08:54

linux服務器策略

2009-04-23 18:17:31

LinuxFTP服務器

2009-09-16 08:26:58

2015-10-09 09:41:24

HTTP網絡協議文件傳輸

2015-10-10 16:46:14

HTTP網絡協議文件傳輸

2015-09-28 13:39:13

Http網絡協議HTTP

2020-05-27 12:20:34

LinuxSSH服務器

2011-06-09 13:07:03

2015-09-29 09:25:20

HTTP網絡協議

2015-10-08 09:38:24

HTTP網絡協議文件傳輸

2009-09-25 10:13:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区视频 | 一区二区三区播放 | 色视频网站在线观看 | 国产欧美视频一区二区三区 | 2022精品国偷自产免费观看 | 啪啪免费网 | 97影院在线午夜 | 精品国产免费一区二区三区五区 | 欧美淫片| 精品96久久久久久中文字幕无 | 韩国成人在线视频 | www.一级片| 日韩av免费看 | 色呦呦网站 | www.黄色网 | 黄色大全免费看 | 午夜a√| 国产精品久久久久久久7电影 | 日韩一二三区 | 欧美日韩在线一区 | 手机在线观看av | 青青久久 | 在线成人免费视频 | 国产精品一区二区久久 | 欧美高清视频一区 | 免费观看的av毛片的网站 | 国产精品久久久久影院色老大 | 国产精品区一区二区三区 | 久久亚洲国产精品日日av夜夜 | 国产亚洲精品久久久久动 | 天天天操天天天干 | 欧美一区二区久久 | 91视频进入 | 91在线视频一区 | 欧美在线观看一区 | 亚洲精品久久区二区三区蜜桃臀 | 免费看爱爱视频 | 91精品久久久久久久久 | 国产一区二区欧美 | 国产视频一视频二 | 国产成人精品久久二区二区 |