zoukankan      html  css  js  c++  java
  • python小技巧

    python小技巧 小知识

    python系统变量(修改调用shell命令路径)或用户空间说明
    20150418
    python调用系统命令,报找不到.怎么办?
    类似执行shell的:
    [ -f /etc/init.d/functions ] && . /etc/init.d/functions || . /lib/lsb/init-functions
    export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    在子进程生效:
    os.putenv("PATH","/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin")
    os.putenv("LD_LIBRARY_PATH","/usr/local/mysql/lib:/usr/local/glibc-2.14/lib")
    os.putenv("TZ","Asia/Shanghai")

    在父进程生效:
    os.environ['PTAH] ='aaaa'

    改变执行命令空间:
    os.chdir('/root')
    python判断
    20150422 Chenxin整理
    1.判断字符串是否为空.(python判断进程是否存在)
    判断系统某个进程是否存在,不存在,则直接退出自己:
    mysqlprocess=os.popen('ps -e|grep mysqld').read()
    if len(mysqlprocess) == 0:
    exit()

    if <条件判断1>:
    <执行1>
    elif <条件判断2>:
    <执行2>
    elif <条件判断3>:
    <执行3>
    else:
    <执行4>

    2.判断字符串内值
    s为字符串
    s.isalnum() 所有字符都是数字或者字母
    s.isalpha() 所有字符都是字母
    s.isdigit() 所有字符都是数字
    s.islower() 所有字符都是小写
    s.isupper() 所有字符都是大写
    s.istitle() 所有单词都是首字母大写,像标题
    s.isspace() 所有字符都是空白字符、 、 、

    3.判断字符类型
    判断是整数还是浮点数
    a=123
    b=123.123

    isinstance(a,int)
    True

    isinstance(b,float)
    True

    isinstance(b,int)
    False
    string 里面的函数isdigit(),可以判断是不是数字。或者,采用type(1)==int。

    1. == != >= <=
      if c == b:
      print('c is equal as b')
      if c != a:
      print('c is not equal as a')
      if a >= b:
      print('a is greater than b')
      if c <= a:
      print('c is less than a.')

    5.同一性运算
    说明:用于判断两个变量是否指向同一对象;
    注意:避免把 is 比较运算符应用于比较常量值,如数字,字符串等。 即 避免以下比较:1: if '123' is '123':
    x is y:x和y是同一对象;
    x is not y:x和y不是同一对象;
    x in y: x在y中;
    x not in y: x不在y中;
    注意:
    比较运算符是可连接的,例如:14 < age < 26;
    比较运算符不能比较不同类型的数据.

    判断文件夹是否存在,不存在则创建:
    if not os.path.isdir('/bak'):
    os.mkdir('/bak')

    布尔运算符
    说明:包括,and, or, not

    python shell间变量传递 python中百分号 % 用法
    20150425 Chenxin整理
    python -> shell

    1.环境变量
    import os
    var=123或var=’123’
    os.environ[’var’]=str(var) #environ的键值必须是字符串
    os.system(’echo $var’)

    import os
    var=123或var=’123’
    os.environ[’var’]=str(var) #environ的键值必须是字符串
    os.system(’echo $var’)

    2.字符串连接
    import os
    path=’/root/a.txt’
    var=[1]
    var=’bash’
    os.system(’echo ’ + path) #注意echo后有空格
    os.system(‘echo ‘ + str(var[0]))
    os.system(’echo ’ + var + ’ /root/c.sh’) #注意echo后和/root前有空格

    import os
    path=’/root/a.txt’
    var=[1]
    var=’bash’
    os.system(’echo ’ + path) #注意echo后有空格
    os.system(‘echo ‘ + str(var[0]))
    os.system(’echo ’ + var + ’ /root/c.sh’) #注意echo后和/root前有空格

    3.通过管道
    import os
    var=’123’
    os.popen(’wc -c’, ’w’).write(var)

    import os
    var=’123’
    os.popen(’wc -c’, ’w’).write(var)

    4.通过文件
    output = open(‘/tmp/mytxt’, ‘w’)
    output.write(S) #把字符串S写入文件
    output.writelines(L) #将列表L中所有的行字符串写到文件中
    output.close()

    output = open(‘/tmp/mytxt’, ‘w’)
    output.write(S) #把字符串S写入文件
    output.writelines(L) #将列表L中所有的行字符串写到文件中
    output.close()

    5.通过重定向标准备输出
    buf = open(’/root/a.txt’, ’w’)
    print >> buf, ‘123 ’, ‘abc’

    buf = open(’/root/a.txt’, ’w’)
    print >> buf, ‘123 ’, ‘abc’

    print >> open(‘/root/a.txt’, ‘w’), ‘123 ’, ‘abc’ #写入或生成文件
    print >> open(‘/root/a.txt’, ‘a’), ‘123 ’, ‘abc’ #追加

    print >> open(‘/root/a.txt’, ‘w’), ‘123 ’, ‘abc’ #写入或生成文件
    print >> open(‘/root/a.txt’, ‘a’), ‘123 ’, ‘abc’ #追加

    shell -> python

    1.管道
    import os
    var=os.popen(’echo -n 123’).read( )
    print var

    import os
    var=os.popen(’echo -n 123’).read( )
    print var

    import commands
    var=commands.getoutput(’echo abc’) #输出结果
    var=commands.getstatusoutput(’echo abc’) #退出状态和输出结果

    import commands
    var=commands.getoutput(’echo abc’) #输出结果
    var=commands.getstatusoutput(’echo abc’) #退出状态和输出结果

    3.文件
    input = open(‘/tmp/mytxt’, ‘r’)
    S = input.read( ) #把整个文件读到一个字符串中
    S = input.readline( ) #读下一行(越过行结束标志)
    L = input.readlines( ) #读取整个文件到一个行字符串的列表中

    input = open(‘/tmp/mytxt’, ‘r’)
    S = input.read( ) #把整个文件读到一个字符串中
    S = input.readline( ) #读下一行(越过行结束标志)
    L = input.readlines( ) #读取整个文件到一个行字符串的列表中

    python的百分号用法 %
    20150425Chenxin
    1.函数或方法的参数
    os.remove(db_backup_name)等价于
    os.remove( "%s" %(db_backup_name)) 或
    os.remove( '%s' %(db_backup_name))

    db_backup_name = r"%s/%s_%s.sql" %(db_backup_dir,db_name,time.strftime("%Y%m%d%H%M"))
    backup_result = os.system("mysqldump -h%s -u%s -p%s --default_character-set=%s %s > %s" %(db_host,db_user,db_passwd,db_charset,db_name,db_backup_name))

    tar = tarfile.open('%s'%("/home/admin/test"),"w:gz")
    tar = tarfile.open('%s.tar.gz' % (filename),"w:gz")
    filename + ".tar.gz"

    2.将python变量传入shell指令中的方法:
    import sys
    curr_process_name = sys.argv[0][sys.argv[0].rfind(os.sep)+1:] #获取当前进程的文件名(脚本名)
    print curr_process_name
    curr_process_numb = os.popen("ps axf|grep '%s'|grep -v grep |wc -l" %(curr_process_name)).read() #同以下方式
    curr_process_numb = os.popen("ps axf|grep " + curr_process_name + "|grep -v grep|wc -l").read()

    3.用于print字符
    print 'remove %s' %(db_backup_name)

  • 相关阅读:
    递归函数及Java范例
    笔记本的硬盘坏了
    “References to generic type List should be parameterized”
    配置管理软件(configuration management software)介绍
    WinCE文件目录定制及内存调整
    使用Silverlight for Embedded开发绚丽的界面(3)
    wince国际化语言支持
    Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
    WinCE Heartbeat Message的实现
    使用Silverlight for Embedded开发绚丽的界面(2)
  • 原文地址:https://www.cnblogs.com/chanix/p/12737715.html
Copyright © 2011-2022 走看看