Python 经验总结
来源:互联网 发布:怎么看python安装的库 编辑:程序博客网 时间:2024/05/18 15:04
This is all the knowledge learned from others’ code. We can learn it together.
# 包含在这个博客里面的内容都是简单的模块使用,是本人亲自试用过的代码,因为Python的模块众多,# 其他没有涉及到模块是本人未曾涉足的模块,本博客里面的代码只是简单的使用,不涉及极其复杂的编程。
1、StringIO模块,将输入测字符串作为流返回,可以进行迭代,示例如下:
# the regular expression below used for split string to a list by one or more whitespace. pass_regular_expression = r'UEC-%d\s+\|' % uec_index # below just think it return a string, It's part code of mine. ret = self.execute_command(rrc_log_ret_cmd, pass_regexp=pass_regular_expression) for line in StringIo(ret): if 'rrc' in line and not found_rrc_flag: found_rrc_flag = True column_of_rrc = re.split(r'\s+', line.strip()).index('rrc') continue if re.findall(pass_regular_expression, line): ret_state = re.split(r'\s+', line.strip())[column_of_rrc + 1] break # -------------------------------------------------------------------------- # re.search re.search(':author: (?P<author>.+)', module.__doc__).group('author').decode('utf-8', 'ignore') # http://www.crifan.com/detailed_explanation_about_python_regular_express_named_group/
2、re模块,正则表达式模块,示例如下:
# the regular expression below used for split string to a list by one or more whitespace. pass_regular_expression = r'UEC-%d\s+\|' % uec_index # below just think it return a string, It's part code of mine. ret = self.execute_command(rrc_log_ret_cmd, pass_regexp=pass_regular_expression) for line in StringIo(ret): if 'rrc' in line and not found_rrc_flag: found_rrc_flag = True column_of_rrc = re.split(r'\s+', line.strip()).index('rrc') continue if re.findall(pass_regular_expression, line): ret_state = re.split(r'\s+', line.strip())[column_of_rrc + 1] break # ------------------------------------------------------------- # re.search re.search(':author: (?P<author>.+)', module.__doc__).group('author').decode('utf-8', 'ignore') # http://www.crifan.com/detailed_explanation_about_python_regular_express_named_group/
3、subprocess模块,用于启动操作系统上的shell命令行,并可以返回执行的结果
# with the subprocess to execute the command. # Popen.returncode # The child return code, set by poll() and wait() (and indirectly by communicate()). A None # value indicates that the process hasn’t terminated yet.decode_result = subprocess.Popen(decode_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)start = datetime.datetime.now()decode_log = "start to decode log.\n\r"while decode_result.poll() is None: for line in decode_result.stdout.readlines(): decode_log += line time.sleep(1) if (datetime.datetime.now() - start).seconds > timeout: failed_reason = "decode run timeout" self._log.error(failed_reason) rc = decode_result.returncode self._log.info("timeout,return code is %s" % rc) istimeout = True ctypes.windll.kernel32.TerminateProcess(int(decode_result._handle), -1) break
4、collections集合相关
# the use is specialfrom collections import Counterprint Counter("hello")>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
5、 glob模块
# list all the file enb.py, can with wildchar, like * etc.# glob.glob('*.py') can list all file under current path endwiths .pyfile_list = glob.glob("%s/*/enb.py" % os.path.dirname(os.path.abspath(__file__)))
6、1) os.path模块
# This used for deal with file and directoryos.path.dirname('C:/a/b') --> 'C:/a'os.path.basename('C:/a/b') --> 'b'
2) os.system(command)函数
# This method can execute the command which in string type, and return the exit statu,# which in linux 0 often stands for success!cmd_str = 'ps -ef | egrep "egate|edaemon|sim_" | egrep "$EDAEMONPORT|$EGATEPORT" | \ awk \'{print $2}\' | xargs -i sudo kill -9 {}'log_ret_message = ''if 0 == os.system(cmd_str): log_ret_message = 'The command executed success! %s'%cmd_strelse: log_ret_message = 'The command executed failed! %s'%cmd_str
7、sys模块
# get the system local coding infomation>>> import sys>>> sys.getdefaultencoding()'ascii'>>> reload(sys)<module 'sys' (built-in)>>>> sys.setdefaultencoding('utf-8')>>> sys.getdefaultencoding()
8、chardet模块
# detect the coing infomation>>> import chardet>>> f = open('test.txt','r')>>> result = chardet.detect(f.read())>>> result{'confidence': 0.99, 'encoding': 'utf-8'}
9、importlib模块
# This module used for import the module which you want by code itself.# The module name should be in full path name contains package name# like os.path.join etc..importlib.import_module("The module name which you want import")
10、time模块
# get the time from a baseline in seconds, we can use this module to calculate # how much time does our program cost.import timestart_time = time.time()# here some program which you want to konw how long have your program stay thereend_time = time.time()during_time = end_time - start_time
11、pydoc模块
# this module used for extract the docstring from the python source code.# we can use it just like below.from pydoc import helphelp(模块名)# we can get more options, with the command in console or cmd window just like belowpydoc --help# we can get the docstring into a html file in console or cmd windowpydoc -w 模块名
12、robot模块
# this module used for test automation. what within this module is lots of sub-modules.# 最近学习使用sphinx抽取python源代码的docstring形成html文档,相较于pydoc的初步阶段,# sphinx做的更为优秀,关于sphinx的使用准备在另外一个博客中记述,此处省略。# sphinx生成网页版的界面良好的API,需要使用rst格式的文件,robot提供了提取docstring生成xml的robot.libdoc# 模块,然后需要自己编码实现xml到rst的转换,之后通过sphinx生成html,当然sphinx提供了简单的# .py到.rst的转换,但是提取的信息只是框架,docstring信息提取不全。# robot模块的使用在另外博文中记述了,有兴趣可以查阅《测试自动化——robotframework》
13、unittest模块
# this module used for unit test单元测试# 用法基本如下代码。# -*- coding: utf-import unittestclass Test(unittest.TestCase): def setUp(self): """set up""" self.iphy_instant = iphy() def tearDown(self): """none""" pass def test_control_rrc_log_on(self): ret_state = self.iphy_instant._extract_rrc_log_status(log_info=loginfo. RRC_LOG_ON_INFO,regexp=r'UEC-1\s+\|') self.assertEqual(ret_state, "on", "Enable rrc log function failed!") if __name__ == "__main__": unittest.main()
14、itertools
# we can learn by below blog:# http://www.cnblogs.com/vamei/p/3174796.html# http://blog.csdn.net/largetalk/article/details/6905378# this module used for iter elements用于产生迭代器import itertools as toola = range(10) #print [i for i in tool.imap(lambda e:e+2, a)]
15、fabric
# This module can used for remote operate server with ssh# 这个模块用于使用ssh远程操作一系列的服务器,运维管理# http://blog.csdn.net/wklken/article/details/8719541
16、pexpect
# 这个模块用于模拟expect类型的脚本解释器,实现自动交互,比如自动# 远程使用ssh, telnet连接服务器,并做一些操作,比如拷贝文件等# 等。# 具体参看下边博客http://www.cnblogs.com/ma6174/archive/2012/05/25/2508378.html
0 0
- Python 经验总结
- [python] python单元测试经验总结
- Python汉字编码经验总结
- Python汉字编码经验总结
- python功能使用经验总结
- Python单元测试经验总结
- Python 常用经验总结
- Python支持中文汉字编码经验总结
- python中使用berkeley db的经验总结
- 用python参加Kaggle的些许经验总结
- python 预处理XML格式文档经验总结
- 用python参加Kaggle的些许经验总结
- 经验总结
- 经验总结
- 经验总结
- 经验总结
- 经验总结
- 经验总结
- jQuery.extend 函数详解
- git
- Scenario: Build a Classic ASP Website on IIS (在Win8,Win server 2012中架设传统ASP网站)
- vc解压和载入zip资源包方法
- Android--SharedPreference应用
- Python 经验总结
- HDFS追本溯源:HDFS操作的逻辑流程与源码解析
- Linux下Opencv入门编程一 (图像取反)
- 帧间预测详解
- Android ListView分页加载时图片显示问题
- Mac上显示隐藏文件的命令
- eclipse搭建Android测试环境+运行模拟器
- Android Camera简述
- java实现解一元n次多项式