linux下进行ftp上传下载的python代码-python

最近需要频繁的在windows和linux下进行文件传输,但是linux下又没有像飞鸽传书那样方便的软件,参阅网上的一些例子,自己写了个上传下载的python代码:

上传:1、设置好服务器的ip,登录服务器的用户名、密码,

2、设置好准备上传到服务器的位置:ftpdir

3、设置好待上传的文件的目录:filedir_client

4、运行:python  upload.py  ,按照程序提示输入要上传的文件名,回车等待。

5、完成。

#!/usr/bin/env python
#upload file
from ftplib import FTP

#ip = raw_input("enter ip or tick enter for default: ")
#port = raw_input("enter port or tick enter for default: ")
#username = raw_input("enter username or tick enter for default: ")
#password = raw_input("enter password or tick enter for default: ")
#ftpdir = raw_input("enter uploaddir or tick enter for default: ")


ip='192.168.1.101'
port='21'
username='yangchuang'
password='.'
ftpdir='filesystem/dsplinktest/'
filedir_client='dsp/export/BIN/DspBios/DAVINCIHD/DM6467GEM_0/DEBUG/'

bufsize=1024
try:
    ftp=FTP()
    ftp.set_debuglevel(2)
    ftp.connect(ip,port)
    ftp.login(username,password)
    print ftp.getwelcome()
except:
    print "can't login to the server"
    exit

while 1:
    filename = raw_input("enter upload filename or tick enter for default,q for exit: ")
    if filename=='':
        filename='avinfo.out'
    if filename=='q':
        break    
    try:
        file_handler=open(filedir_client+filename,'rb')
    except:
        print 'no such files,please check the filename'
        continue

    cmd='STOR '+ftpdir+filename
    ftp.storbinary(cmd,file_handler,bufsize)
ftp.set_debuglevel(0)
ftp.quit()

下载:设置步骤同上传。

#!\usr\bin\env python
#upload file
import os
from ftplib import FTP

#ip = raw_input("enter  ip or tick enter for default: ")
#port = raw_input("enter the port or tick enter for default: ")
#username = raw_input("enter  username or tick enter for default: ")
#password = raw_input("enter   password or tick enter for default: ")
#ftpdir = raw_input("enter the download  dir or tick enter for default: ")


ip='192.168.1.101'
port='21'
username='yangchuang'
password='.'
ftpdir='filesystem//dsplinktest//' # where 's the file on the server
filedir_client='..//' #where do you want to save the file
bufsize=1024
try:
    ftp=FTP()
    ftp.set_debuglevel(2)
    ftp.connect(ip,port)
    ftp.login(username,password)
    print ftp.getwelcome()
    
except:
    print "can't login to the server"
    exit
while 1:
    filename = raw_input("enter download filename or tick enter for default, q for exit: ")   
    if filename=='':
        filename='o.264'
    if filename=='q':
        break
    try:
        file_handler=open(filedir_client+filename,'wb').write
    except:
        print "cann't create such files"
        continue
    
    cmd='RETR '+ftpdir+filename
    try:
        ftp.retrbinary(cmd,file_handler,bufsize)
    except:
        print '----------ERROR-----------:no such files on server'
        continue
ftp.set_debuglevel(0)
ftp.quit()

也可以把*.py文件再linux和windows下编译成可直接执行的文件:*.pyc *.exe文件,以后运行起来更方便了。

posted on 2011-02-28 18:41  oskycar  阅读(3139)  评论(0编辑  收藏  举报

导航