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 负数步长切割列表 ...
随机推荐
- How we implemented consistent hashing efficiently
原文链接https://medium.com/ably-realtime/how-to-implement-consistent-hashing-efficiently-fe038d59fff2 我们 ...
- Idea中Maven的安装
Maven 软件的下载 为了使用Maven 管理工具,我们首先要到官网去下载它的安装软件.通过百度搜索“Maven“, 点击Download 链接,就可以直接进入到Maven 软件的下载页面: 目前最 ...
- redis的介绍与操作及Django中使用redis缓存
redis VS mysql的区别 """ redis: 内存数据库(读写快).非关系型(操作数据方便) mysql: 硬盘数据库(数据持久化).关系型(操作数据间关系) ...
- 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 ( ...
- Python第一个程序Hello Word
[源代码] print('Hello Python World!') [过程] 打开命令提示窗口(cmd),在源程序所在路径下执行,python 文件名.py. [截图]
- 小程序封装request请求,统一API
程序开发中都会调用后端工程师开发的API,小程序的开发文档提供了相对实用的APIwx.request(),但是在开发的过程中,又遇到了一些问题,在小程序的项目开发时,调用的API不止一个,同一个API ...
- 第03讲 fragment
Fragment 官网文档:https://developer.android.google.cn/guide/components/fragments 什么是Fragment 在手机上,Activi ...
- Hive 时间函数总结【转】
1.日期函数UNIX时间戳转日期函数: from_unixtime语法:from_unixtime(bigint unixtime[, stringformat]) 返回值: string说明: 转化 ...
- SqlServer性能优化,查看CPU、内存占用大的会话及SQL语句
1,查看CPU占用量最高的会话及SQL语句 select spid,cmd,cpu,physical_io,memusage, (select top 1 [text] from ::fn_get ...
- [PHP] RBAC权限与审批流的简单数据库构想
权限部分:功能权限+数据权限 控制权限是界面按钮菜单的权限控制,数据权限是数据范围的控制 role(角色) ----------------- |id | ----------------- |nam ...