`
xiagu1
  • 浏览: 48189 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一次python编程-FTP、执行外部命令

阅读更多

所做的第一个python工作是这样的,首先需要到ftp上下载一部分加密资料,然后解码,取出一些需要的变量,然后计算,计算完毕以后插值,再放到指定的ftp上去,在这里python主要做些辅助工作,实现的都是类似shell的功能,对ftp的实现采用了两种办法,一种是调用python的ftplib,一种是用系统自己的ftp。

一、主控制ctr.py
#!/usr/bin/env python
#coding=utf-8
import os
cmd1="python /home/decode.py"
cmd2="python /home/remerge.py"
cmd3="python /home/flwtest.py"
cmd4="python /home/ftpput.py"
os.system(cmd1)
os.system(cmd2)
os.system(cmd3)
os.system(cmd4)

 其实很简单,import os就类似c 的include,就是加一个头文件,后面就可以调用os里面的函数,这里os.system你给他一个字符串,这里我给的都是需要顺序执行的代码。主控制需要设置定时执行,因为在linux上用,所以用的cron。cron设置方法如下

打开etc/crontab
添加 30 8 * * * python /home/get.py
30 9 * * *  root  python /home/ctr.py
即可,数据文件可自动建立默认在home/datadir
contab 添加后需要重启服务
/sbin/service crond restart
/sbin/service crond reload
需要服务器启动即加载的话需要改 etc/rc.d/rc.local
里面末尾加上/sbin/service crond start

我的程序是每天运行,get.py每天8点半执行,ctr.py每天9点半执行

二、get.py是用来ftp获取数据文件的

其实就是一个ftp脚本

#!/usr/bin/env python 
#coding=utf-8
import ftplib
import os
import datetime
#yestday计算昨天时间,给出格式化字符串
fte=datetime.datetime.now()
fte1=fte + datetime.timedelta(days = -1)
print datetime.datetime.strftime( fte, '%Y%m%d')
yest=datetime.datetime.strftime( fte1, '%Y%m%d')
print yest
#设置ftp目录
dirn = '/home/DATA/2009032800/' 
dir1 = '/home/DATA/'+yest+'12'
file1 = '2009032800000.grb1' 
# Define the local directory name to put data in
ddir="/home/datadir"
# If directory doesn't exist make it
if not os.path.isdir(ddir):
    os.mkdir(ddir)
# Change the local directory to where you want to put the data
os.chdir(ddir)

# login to FTP这里设置地址用户名密码
f=ftplib.FTP("0.0.0.0", "user", "password")
print f.getwelcome()
# change the remote directory
f.cwd(dir1)
f.dir()
# define filename
#循环拼需要ftp的文件名
ii=0
file0 = yest+'12'
temp1=''
while ii<=20:
    temp1=12*ii
    temp2=str(temp1)
    if ii<9:
        file1=file0+'0'+temp2+'.grb1' 
        if ii==0:file1=file0+'00'+temp2+'.grb1' 
    else:
        file1=file0+temp2+'.grb1'    
    ii=ii+1     
    print ii	 
    print "download "+file1 
    f.retrbinary("RETR %s" % file1, open(file1,"wb").write,1024) 
    print file1+"download ok"

f.close()
print yest+" data download end!"

中间执行的一些decode、merge与主控制类似,就是调用os.system执行我的fortran程序

三、最后把数据ftp到指定服务器上

这里采用的是系统的ftp与前面的不同

#!/usr/bin/env python
#coding=utf-8
import os
os.chdir("/home/kkk/")
a=os.listdir("/home/kkk/")
h=open ("22.ftp","w")
h.write("user kkk kkk"+ '\n')
h.write("bin "+ '\n')  
h.write("cd /outdata/ "+ '\n')  

for row in a:
  h.write("put ")  
  h.write(row+ '\n')
#print a

h.write("bye "+ '\n')  
cmd1="ftp -nv 1.1.1.1 <22.ftp"
os.system(cmd1)
cmd2="rm *"
os.system(cmd2)

 

 

0
0
分享到:
评论

相关推荐

    python3-requests-ftp-0.3.1-11.el8.noarch(1).rpm

    离线安装包,亲测可用

    python2-dev.zip

    例如,如果你正在编写一个需要调用系统底层功能的模块,如网络编程、图形处理或加密算法,使用Python的C API可以提高程序性能,同时保持Python的易用性。C API提供了许多函数,如`Py_Initialize`和`Py_Finalize`用于...

    10-python提高-1(python和linux高级编程阶段 代码和截图)

    10-python提高-1(python和linux高级编程阶段 代码和截图)10-python提高-1(python和linux高级编程阶段 代码和截图)10-python提高-1(python和linux高级编程阶段 代码和截图)10-python提高-1(python和linux高级...

    11-python提高-2(python和linux高级编程阶段 代码和截图)

    11-python提高-2(python和linux高级编程阶段 代码和截图)11-python提高-2(python和linux高级编程阶段 代码和截图)11-python提高-2(python和linux高级编程阶段 代码和截图)11-python提高-2(python和linux高级...

    Python编程-核心知识

    Python编程是一种广泛应用于数据分析、机器学习、Web开发和自动化任务的高级编程语言。它的语法简洁明了,使得初学者能够快速上手。本资源“Python编程-核心知识”旨在提供全面且深入的Python编程基础,帮助读者从零...

    Python-linux高级命令教程及代码

    Python-linux高级命令教程及代码Python-linux高级命令教程及代码Python-linux高级命令教程及代码Python-linux高级命令教程及代码Python-linux高级命令教程及代码Python-linux高级命令教程及代码Python-linux高级命令...

    python-devel-2.7.5-68.el7.x86_64.rpm python-2.7.5-68.el7.x86_64.rpm

    标题中的"python-devel-2.7.5-68.el7.x86_64.rpm"和"python-2.7.5-68.el7.x86_64.rpm"是两个重要的软件包,它们与Python编程语言在Linux环境中的开发和运行紧密相关。这些文件是针对Red Hat Enterprise Linux 7 ...

    python网络编程入门-FTP服务开发实战课件源码

    Python网络编程是初学者深入理解计算机网络和编程技术的重要领域,尤其在FTP(File Transfer Protocol)服务开发方面,它提供了一种便捷的方式进行文件传输。本篇将详细讲解Python网络编程入门以及FTP服务开发的相关...

    python-3.7.9-amd64.exe

    3. **安装过程**:安装程序`python-3.7.9-amd64.exe`会引导用户完成一系列步骤,包括选择安装路径、是否设置Python为系统默认解释器、添加环境变量等。安装完成后,Python解释器和标准库将被安装在指定位置,同时...

    python网络编程基础FTP

    《Python网络编程基础:FTP》一书由John Goerzen编写,是学习Python网络编程中FTP协议应用的权威指南。本书全面介绍了如何使用Python进行网络编程,尤其在FTP(File Transfer Protocol)领域的深入探讨,为读者提供...

    Python安装包下载python-3.8.2-amd64.exe.zip

    文件名为"python-3.8.2-amd64.exe"的可执行程序是Python的安装程序,双击即可启动安装过程。 在安装Python时,有几点需要注意: 1. **选择安装路径**:你可以自定义Python的安装位置,但通常推荐保持默认设置,...

    少儿编程python教案-初识Python.pptx

    【初识Python】这篇教案是针对少儿编程设计的,旨在介绍Python编程语言的基本概念和初步应用。Python由荷兰人吉多·范罗苏姆在1989年创造,其名称来源于“大蟒蛇”,是一种设计简洁、优雅、可读性强的语言。Python的...

    python-3.8.10-amd64.zip

    在“python-3.8.10-amd64.zip”压缩包中,主要的文件是“python-3.8.10-amd64.exe”,这是一个可执行文件,用于在Windows系统上安装Python。这个安装程序会引导用户完成一系列步骤,包括选择安装路径、添加Python到...

    Python教程-11-终端命令的格式说明.ev4.rar

    在Python编程的学习过程中,了解和掌握终端命令是至关重要的,特别是在进行自动化脚本编写、文件管理以及系统操作时。在“Python教程-11-终端命令的格式说明”这一章节中,我们将深入探讨如何在终端中使用命令,以及...

    Python核心编程-丘恩

    Python核心编程丘恩Python核心编程-丘恩Python核心编程-丘恩Python核心编程-丘恩Python核心编程-丘恩Python核心编程-丘恩

    【Python资源】 python-3.12.0-amd64

    Python 3.12.0是Python编程语言的一个稳定且功能丰富的版本。该版本带来了众多性能优化、新特性和语言改进,使得Python在数据处理、机器学习、Web开发等领域的应用更加高效和便捷。本次介绍的资源是适用于AMD64架构...

    python-3.10.8-amd64 python3.10 64位windows安装包

    在安装过程中,`python-3.10.8-amd64.exe`是一个自解压可执行文件,双击后会启动安装向导。用户可以选择自定义安装路径,决定是否将Python添加到系统PATH环境变量中,以及是否为所有用户安装。将Python添加到PATH...

    python-2.7.18-macosx10.9

    Mac OS的Monterey版本可用的python2.7,官方版本,官方地址:https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg,转存于CSDN。

    网络编程---ftp客户端程序实验报告

    【网络编程---FTP客户端程序实验报告】 实验报告的主题聚焦于网络编程中的FTP客户端程序,旨在深化计算机科学与技术专业学生对TCP/IP协议的理解,并通过实际编程来熟练掌握协议的应用层设计。实验的主要目的是: 1...

    Python-FTP小demo未实现断点续传

    这个"Python-FTP小demo未实现断点续传"是一个基于Python 3.6的简单FTP客户端示例,它展示了如何使用Python的ftplib库来连接到FTP服务器、上传或下载文件。然而,该示例没有实现断点续传功能,这意味着如果文件传输...

Global site tag (gtag.js) - Google Analytics