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 :
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。
- == != >= <=
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
- 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小技巧 小知识的更多相关文章
- SQL小技巧小知识
1.[ ]的使用 当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * ...
- rails项目编写中的一些小技巧小心得
1. 如果form中有数据要传回服务器可以用隐藏属性的控件: form_for(xxx) do |f| f.hidden_field :xxx,value:xxx end 2. 如果你需要一些信息放在 ...
- python 设计及调试的一些小技巧
在“笨办法学习python”中介绍了一些设计函数以及调试技巧: 参考网址:http://www.jb51.net/shouce/Pythonbbf/latest/ex36.html If 语句的规则¶ ...
- 填坑总结:python内存泄漏排查小技巧
摘要:最近服务遇到了内存泄漏问题,运维同学紧急呼叫解决,于是在解决问题之余也系统记录了下内存泄漏问题的常见解决思路. 本文分享自华为云社区<python内存泄漏排查小技巧>,作者:luti ...
- 一些Python的惯用法和小技巧:Pythonic
Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技 ...
- Python补充02 Python小技巧
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
- python 小技巧(import模块、查询类继承关系、安装包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
- 30个有关Python的小技巧
从我开始学习python的时候,我就开始自己总结一个python小技巧的集合.后来当我什么时候在Stack Overflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当 ...
- <转> 30 个有关 Python 的小技巧
目录[+] 1.1 拆箱 1.2 拆箱变量交换 1.3 扩展拆箱(只兼容python3) 1.4 负数索引 1.5 切割列表 1.6 负数索引切割列表 1.7指定步长切割列表 1.8 负数步长切割列表 ...
随机推荐
- 深入理解 Java 枚举
- SpringCloud服务过滤filter
一.目录展示 二.application.yml配置文件 三.MyZuulFilter package com.zn.filter; import com.netflix.zuul.ZuulFilte ...
- Python中通过csv的writerow输出的内容有多余的空行两种方法
第一种方法 如下生成的csv文件会有多个空行 import csv #python2可以用file替代open with open("test.csv","w" ...
- PlayJava Day024
造型Cast补充: 子类的对象可以赋值给父类的变量 注意:Java中不存在对象对对象的赋值 父类的对象不能赋值给子类的变量 例: Vechicle v ; Car c = new Car() ; v ...
- 前端最佳实践——DOM操作
1.浏览器渲染原理 在讲DOM操作的最佳性能实践之前,先介绍下浏览器的基本渲染原理. 分为以下四个步骤: 解析HTML(HTML Parser) 构建DOM树(DOM Tree) 渲染树构建(Rend ...
- InnoDB On-Disk Structures(一)-- Tables (转载)
转载.节选于https://dev.mysql.com/doc/refman/8.0/en/innodb-tables.html 1.InnoDB Architecture The following ...
- TYUT程序设计入门第四讲练习题题解--数论入门
程序设计入门第四讲练习题题解--数论入门 对于新知识点的学习,需要不断地刷题训练,才能有所收获,才能更好地消化知识点. 题组链接: 程序设计入门第四讲练习题--数论 by vjudge 题解: A. ...
- .net core 在 Docker 上的部署
Docker可以说是现在微服务,DevOps的基础,咱们.Net Core自然也得上Docker..Net Core发布到Docker容器的教程网上也有不少,但是今天还是想来写一写.你搜.Net co ...
- Python中容易忽视的知识点
今天坐在实验室,觉得有点无聊,想了下,很久没写博客了,就来写一点,正好遇到了一个有意思的小问题,分享给大家. 首先我们通过一个小的实验来看一下内容: 不管是 Python2 还是 Python3 环境 ...
- IT兄弟连 HTML5教程 HTML5表单 HTML表单中的get和post方法
指引 表单在网页应用中十分重要,基本上任何一个网站都必须使用到表单元素,所以表单的美观和易于交互对于网站设计就变得十分重要.HTML5对目前Web表单进行了全面提升,使得我们使用表单更加智能.它在保持 ...