python的ftp

#coding=gbk
import os
from ftplib import FTP
from fnmatch import fnmatch
from datetime import date
from subprocess import *
import getpass
import sys
import telnetlib
import re
import io
import logging
global CWD,LOGFILE,CONFIGFILE
os.chdir(os.getenv('CASE_HOME'))
CWD=os.getcwd()
CONFIGFILE=CWD+'\\config.cfg'
def initial():
    global HOSTIP, USERNAME, PASSWORD, REMOTEDIR, PROMPT, LOCALCODEDIR, REMOTECODEDIR
    result=0
    f_conf=open(CONFIGFILE,'r')
    for line in f_conf:
        m = re.search('(.*)=(.*)',line)
        if m:
            var=m.group(1)
            content=m.group(2)
            if var == 'HOSTIP':
                HOSTIP=content
                result=result+1
            if var == 'USERNAME':
                USERNAME=content
                result=result+1
            if var == 'PASSWORD':
                PASSWORD=content
                result=result+1
            if var == 'REMOTEDIR':
                REMOTEDIR=content
                result=result+1
            if var == 'LOCALCODEDIR':
                LOCALCODEDIR=content
                result=result+1
            if var == 'REMOTECODEDIR':
                REMOTECODEDIR=content
                result=result+1
            if var == 'PROMPT':
                PROMPT=content
                result=result+1
    return result

def main():
    print "begein main"

    #读取配置文件
    print 'Begin read config.cfg...'
    os.chdir(CWD)
    if initial() != 7:
        print "read config.cfg failed,please check it!"
        return -1
    print 'Read config.cfg sucessed!'

    #FTP登陆到服务器
    ftp = FTP(HOSTIP)
    ftp.login(USERNAME,PASSWORD)
    print "begin get file list"
    file=open(LOCALCODEDIR+"/tmp.txt",'r')
    for line in file:
        #上传文件
        line=line.replace('\\','/')
        line=line.replace('\n','')
        dest=line
        tmp = dest.replace(LOCALCODEDIR,REMOTECODEDIR)
        print line+'-->'+tmp
        CASENAME=os.path.basename(line)
        ftp.cwd(os.path.dirname(tmp))
        ftp.storlines('STOR '+CASENAME,open(line))
    file.close()

    #退出FTP和TELNET
    ftp.quit()

if __name__ == '__main__':
    main()

 

 

配置文件示例:

1 HOSTIP=10.
2 USERNAME=
3 PASSWORD=
4 LOCALCODEDIR=D:/01_code
5 REMOTECODEDIR=/home/
6 PROMPT=>

 

posted @ 2017-11-21 12:41  timwind  阅读(111)  评论(0)    收藏  举报