使用到的模块 ftplib
代码托管位置 github-pytools
需求
快速进行ftp上传 ,下载,查询文件
原来直接在shell下操作:需要【连接,输用户名,输密码,单文件操作,存在超时限制】
太过于繁琐,容易操作失败
改进
一句命令,搞定多文件上传,下载,查询,列表等操作
后期可以加入更强大的功能
源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
#!/usr/bin/python # -*- coding:utf-8 -*- #ftp.py # wklken@yeah.net #this script is used to do some operations more convenient via ftp #1.[p]upload many files in the same time,show md5s #2.[g]download many files in the same time,show md5s #3.[l]list all the files on ftp site #4.[f]search a file on ftp site,return True or Flase #5.[h]show help info #add upload and download operations 20111210 version0.1 #add md5sum after ops 20120308 version0.2 import sys,os,ftplib,socket CONST_HOST = "ip" CONST_USERNAME = "username" CONST_PWD = "pwd" CONST_BUFFER_SIZE = 8192 COLOR_NONE = "33[m" COLOR_GREEN = "33[01;32m" COLOR_RED = "33[01;31m" COLOR_YELLOW = "33[01;33m" def connect(): try: ftp = ftplib.FTP(CONST_HOST) ftp.login(CONST_USERNAME,CONST_PWD) return ftp except socket.error,socket.gaierror: print("FTP is unavailable,please check the host,username and password!") sys.exit(0) def disconnect(ftp): ftp.quit() def upload(ftp, filepath): f = open(filepath, "rb") file_name = os.path.split(filepath)[-1] try: ftp.storbinary('STOR %s'%file_name, f, CONST_BUFFER_SIZE) except ftplib.error_perm: return False return True def download(ftp, filename): f = open(filename,"wb").write try: ftp.y">.write try: ftp.p>快速进行ftp上传 ,下载,查询文件
原来直接在shell下操作:需要【连接,输用户名,输密码,单文件操作,存在超时限制】 太过于繁琐,容易操作失败 改进一句命令,搞定多文件上传,下载,查询,列表等操作 后期可以加入更强大的功能 源代码
|