zoukankan      html  css  js  c++  java
  • Python开发注意事项

    仅为记录自己在使用python过程的的一些心得!
     
    1、服务器上运行脚本:
    windows服务器:
    显式运行:在cmd中直接用python xxxx.py  运行一个py脚本文件。
    后台运行:在cmd中用pythonw xxxx.py 在后台运行一个py脚本文件,系统会在后台启动一个python进程来执行脚本。
     
    Linux服务器:
    显式运行:直接用python xxxx.py运行py文件
    后台运行:使用 nohup 命令,语法格式: nohup Command [ Arg … ] [ & ]
                 示例: nohup python xxxx.py &
    定期运行:配置任务计划,每隔10分钟运行一次,此方案前提是脚本运行时长必须是可控的,不能超过间隔时长。
                     新建aaa.sh文件(假设目录为:/usr/py/),添加如下内容:
    #!/bin/bash
    cd /usr/py
    python monitor.py
    

                 确保py文件有被执行的权限:chmod a+x /usr/py/monitor.py

                 py文件最开头添加:#!/usr/bin/python

             运行crontab -e 启动任务计划编辑,在最后添加一行: */10 * * * * /bin/bash  /usr/py/aaa.sh    ,然后保存退出即可,任务将每隔10分钟运行一次(如整点、整点10分、整点20分等);

                    注意事项:此运行模式下,需确保py文件中所引用的资源为绝对路径(如其他py文件、ini文件等),不能使用相对路径。

                                    采用sh脚本来启动python,执行py脚本,是因为直接在crontab中配置启动python的话,总是不能成功启动,原因未知。

     
     
    2、运行过程中占用内存不断增加,需手动释放内存,用del命令删掉使用过的对象
    del dictNodeInfo
    del objServerJson
    del objHealthJson
    del objNodesJson
    del serverinfo
    del healthinfo
    del nodesread
    del conn
    3、类库使用:
    pymssql:
    使用  import pymssql 时需注意python和pymssql的版本,需保持一致,32位的python配32位的pymssql
    错误示例:import pymssql   DLL load failed: %1 不是有效的 Win32 应用程序

    pika
    将pika目录,拷贝至python安装目录的Lib下即可,如:
     
    4、操作cmd命令:
    (1)引入类包
    import os
     
    (2)执行cmd命令
    import os
    os.system(“ping www.baidu.com”)

    1.用os.system(cmd) 不过取不了返回值
    2.用os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等
    如a=os.popen(cmd).read()  
    
    user=os.popen(runpath,'r').read() 
    
    3.用 commands 模块。其实也是对popen的封装。此模块主要有如下方法
    
    commands.getstatusoutput(cmd) 返回(status, output).
    commands.getoutput(cmd) 只返回输出结果
    commands.getstatus(file) 返回ls -ld file的执行结果字符串,调用了getoutput,不建议使用此方法.
    >>> import commands>>> commands.getstatusoutput('ls /bin/ls')(0, '/bin/ls')>>> commands.getstatusoutput('cat /bin/junk')(256, 'cat: /bin/junk: No such file or directory')>>> commands.getstatusoutput('/bin/junk')(256, 'sh: /bin/junk: not found')>>> commands.getoutput('ls /bin/ls')'/bin/ls'>>> commands.getstatus('/bin/ls')'-rwxr-xr-x  1 root        13352 Oct 14  1994 /bin/ls'
     
    
  • 相关阅读:
    如何复制word的图文到UMEditor中自动上传
    如何复制word的图文到百度编辑器中自动上传
    如何复制word的图文到百度ueditor中自动上传
    java实现大文件上传源码
    java实现大文件上传控件
    java实现大文件上传组件
    java实现大文件上传插件
    html 常用标签及基本用法
    Web最佳实践阅读总结(1)
    基于DevOps理论与人工智能技术的银行业务可用性管控
  • 原文地址:https://www.cnblogs.com/lijunhao/p/5473807.html
Copyright © 2011-2022 走看看