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)

  • 相关阅读:
    Beta 冲刺(5/7)
    Beta 冲刺(4/7)
    Beta 冲刺(3/7)
    Beta 冲刺(2/7)
    Beta 冲刺(1/7)
    福大软工 · 第十次作业
    PTA-B 1039 到底买不买 解题思路记录
    SDN负载均衡
    团队作业——项目验收与总结博客
    个人作业——软件工程实践总结作业
  • 原文地址:https://www.cnblogs.com/chanix/p/12737715.html
Copyright © 2011-2022 走看看