pytnon FTP編程:Python自帶ftplib 模塊,是用來對FTP服務器進行上傳、下載操作,非常方便,使用起來也是行簡單。
如果我們熟悉了下面代碼編寫,怎麼把FTP服務器上的文件下載到本地,怎麼把文件上傳到FTP服務器上和批量FTP上傳、下載
就基本掌握了Python FTP編程。
1 #-*- coding:utf-8 -*-
2 #author:lhj588@live.cn
3 #C_Date: 2011.11.17
4 from ftplib import FTP
5 import socket
6 import os
7 #ftp服務器地址
8 ftp_server = '127.0.0.1'
9 #ftp服務器端口
10 ftp_port ='5433'
11 #ftp服務器登錄名稱
12 user_name = 'lhj588'
13 #ftp服務器登錄密碼
14 password = '888888'
15
16
17 """
18 描述:描述:簡單FTP文件下載
19 """
20 def upload_ftp():
21 ftp = FTP()
22 #打開調試級別2,顯示詳細信息
23 ftp.set_debuglevel(2)
24 #連接FTP服務器
25 ftp.connect(ftp_server,ftp_port)
26 #登錄FTP服務器 如果匿名登錄則用空串代替即可
27 ftp.login(user_name,password)
28
29 #顯示FTP服務器歡迎信息
30 print ftp.getwelcome()
31
32 dir_name = "/mysoft/tool/"
33 #選擇要上傳文件存放服務器的目錄
34 ftp.cwd(dir_name)
35 #設置緩衝塊大小
36 buf_size = 1024
37 #文件名稱
38 file_name = "test.jpg"
39 #以寫模式在本地打開文件
40 f_handler = open(file_name,'wb').write()
41 #接收FTP服務器上文件並寫入本地
42 ftp.retrbinary("RETR test.jpg",f_handler,buf_size)
43 #關閉調試
44 ftp.set_debuglevel(0)
45 #退出FTP服務器
46 ftp.quit()
47 """
48 描述:簡單FTP文件上傳
49 """
50 def down_ftp():
51 ftp = FTP()
52 #打開調試級別2,顯示詳細信息
53 ftp.set_debuglevel(2)
54 #連接FTP服務器
55 ftp.connect(ftp_server,ftp_port)
56 #登錄FTP服務器 如果匿名登錄則用空串代替即可
57 ftp.login(user_name,password)
58 print ftp.getwelcome()
59 dir_name = "/mysoft/tool/"
60 ftp.cwd(dir_name)
61 buf_size = 1024
62 file_name = 'test.jpg'
63 #以讀模式在本地打開文件
64 f_handler = open(file_name,'rb')
65 #上傳文件
66 ftp.storbinary('STOR server_test.jpg',f_handler,buf_size)
67 #關閉調試
68 ftp.set_debuglevel(0)
69 #關閉文件
70 f_handler.close()
71 #退出FTP服務器
72 ftp.quit()
73
74 """
75 描述:登錄到FTP站點:ftp_server,併到tarDirTemp目錄下下載fileNameTempList列表中的文件
76 參數:ftp_server:ftp站點名稱 user_name:ftp登錄名 password:ftp密碼
77 tarDirTemp:下載的目標絕對目錄 fileNameTempList:要下載的文件全名列表
78 返回值:輸出:成功:0 失敗:1
79 """
80 def down_ftp_file(ftp_server, user_name, password, tarDirTemp,fileNameTempList):
81 try:
82 ftp = FTP(ftp_server)
83 ftp.login(user_name, password)
84 ftp.cwd(tarDirTemp)
85 ftp.set_debuglevel(2)
86 except socket.error as errobj:
87 print 'fpt error: %s can\'t download directory\'s file %s' % (errobj, tarDirTemp)
88 return False
89
90 for filename in fileNameTempList:
91 try:
92 #以寫模式在本地打開文件
93 fp = open(filename, 'wb')
94 #從FTP中下載文件
95 ftp.retrbinary('RETR '+filename, fp.write, 1024)
96 except IOError as ioerr:
97 print 'Error: [%s] %s' % (ioerr.errno, ioerr.strerror)
98 return False
99 except FTP.all_errors as errobj:
100 print 'fpt error: [%s] %s' % (errobj, filename)
101 if os.path.isfile(filename):
102 os.system('rm -f ' + filename)
103 continue
104 ftp.close()
105 return True
106
107 """
108 描述:測試方法
109 """
110 if __name__=="__main__":
111 upload_ftp()
112 down_ftp()
113 down_ftp_file(ftp_server,user_name,password,"/mysoft/tool/",['1.jpg','2.jpg','3.jpg'])
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。