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 :

elif :

elif :

else:

2.判断字符串内值
s为字符串
s.isalnum() 所有字符都是数字或者字母
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符都是数字
s.islower() 所有字符都是小写
s.isupper() 所有字符都是大写
s.istitle() 所有单词都是首字母大写,像标题
s.isspace() 所有字符都是空白字符、\t、\n、\r
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\n’, ‘abc’
buf = open(’/root/a.txt’, ’w’)
print >> buf, ‘123\n’, ‘abc’

print >> open(‘/root/a.txt’, ‘w’), ‘123\n’, ‘abc’ #写入或生成文件
print >> open(‘/root/a.txt’, ‘a’), ‘123\n’, ‘abc’ #追加
print >> open(‘/root/a.txt’, ‘w’), ‘123\n’, ‘abc’ #写入或生成文件
print >> open(‘/root/a.txt’, ‘a’), ‘123\n’, ‘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

  1. 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)

python小技巧 小知识的更多相关文章

  1. SQL小技巧小知识

    1.[ ]的使用 当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * ...

  2. rails项目编写中的一些小技巧小心得

    1. 如果form中有数据要传回服务器可以用隐藏属性的控件: form_for(xxx) do |f| f.hidden_field :xxx,value:xxx end 2. 如果你需要一些信息放在 ...

  3. python 设计及调试的一些小技巧

    在“笨办法学习python”中介绍了一些设计函数以及调试技巧: 参考网址:http://www.jb51.net/shouce/Pythonbbf/latest/ex36.html If 语句的规则¶ ...

  4. 填坑总结:python内存泄漏排查小技巧

    摘要:最近服务遇到了内存泄漏问题,运维同学紧急呼叫解决,于是在解决问题之余也系统记录了下内存泄漏问题的常见解决思路. 本文分享自华为云社区<python内存泄漏排查小技巧>,作者:luti ...

  5. 一些Python的惯用法和小技巧:Pythonic

    Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技 ...

  6. Python补充02 Python小技巧

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...

  7. python 小技巧(import模块、查询类继承关系、安装包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...

  8. 30个有关Python的小技巧

    从我开始学习python的时候,我就开始自己总结一个python小技巧的集合.后来当我什么时候在Stack Overflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当 ...

  9. <转> 30 个有关 Python 的小技巧

    目录[+] 1.1 拆箱 1.2 拆箱变量交换 1.3 扩展拆箱(只兼容python3) 1.4 负数索引 1.5 切割列表 1.6 负数索引切割列表 1.7指定步长切割列表 1.8 负数步长切割列表 ...

随机推荐

  1. How we implemented consistent hashing efficiently

    原文链接https://medium.com/ably-realtime/how-to-implement-consistent-hashing-efficiently-fe038d59fff2 我们 ...

  2. Idea中Maven的安装

    Maven 软件的下载 为了使用Maven 管理工具,我们首先要到官网去下载它的安装软件.通过百度搜索“Maven“, 点击Download 链接,就可以直接进入到Maven 软件的下载页面: 目前最 ...

  3. redis的介绍与操作及Django中使用redis缓存

    redis VS mysql的区别 """ redis: 内存数据库(读写快).非关系型(操作数据方便) mysql: 硬盘数据库(数据持久化).关系型(操作数据间关系) ...

  4. How to: Use Both Entity Framework and XPO in a Single Application 如何:在单个应用程序中同时使用实体框架和 XPO

    This topic demonstrates how to create a simple XAF application that uses both the Entity Framework ( ...

  5. Python第一个程序Hello Word

    [源代码] print('Hello Python World!') [过程] 打开命令提示窗口(cmd),在源程序所在路径下执行,python 文件名.py. [截图]

  6. 小程序封装request请求,统一API

    程序开发中都会调用后端工程师开发的API,小程序的开发文档提供了相对实用的APIwx.request(),但是在开发的过程中,又遇到了一些问题,在小程序的项目开发时,调用的API不止一个,同一个API ...

  7. 第03讲 fragment

    Fragment 官网文档:https://developer.android.google.cn/guide/components/fragments 什么是Fragment 在手机上,Activi ...

  8. Hive 时间函数总结【转】

    1.日期函数UNIX时间戳转日期函数: from_unixtime语法:from_unixtime(bigint unixtime[, stringformat]) 返回值: string说明: 转化 ...

  9. SqlServer性能优化,查看CPU、内存占用大的会话及SQL语句

    1,查看CPU占用量最高的会话及SQL语句   select spid,cmd,cpu,physical_io,memusage, (select top 1 [text] from ::fn_get ...

  10. [PHP] RBAC权限与审批流的简单数据库构想

    权限部分:功能权限+数据权限 控制权限是界面按钮菜单的权限控制,数据权限是数据范围的控制 role(角色) ----------------- |id | ----------------- |nam ...