自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杰瑞的专栏

架构师、脚本语言专家;精通Python、Shell、正则表达式;熟悉Java、C、Tcl、Ruby、Scala、Perl等多种编程语言;在性能,开源,自动化测试方面有非常丰富的经验

  • 博客(622)
  • 资源 (5)
  • 收藏
  • 关注

原创 Python的bit_length函数来二进制的位数

自Python3.1中,整数bit_length方法允许查询二进制的位数或长度。常规做法:>>> bin(256)'0b100000000'>>> len(bin(256)) - 29>>>使用函数:>>> bin(256), (256).bit_length()('0b100000000',...

2018-10-01 16:37:28 18438 2

原创 Python中各种进制之间的转换

Python整数能够以十六进制,八进制和二进制来编写,作为一般以10位基数的十进制计数法的补充。一: 上面三种进制的常用表示>>> 0o1, 0o20, 0o377 # 八进制常用表示,0o或者0O开头,后面接数字(1, 16, 255)>>> 0x01, 0x10, 0xFF # 十六进制常用表示,0x或...

2018-10-01 16:18:51 8214

原创 Python的一款非常棒的REPL: ptpython

一: REPLREPL —种交互式解释器环境R(read)、E(evaluate)、P(print)、L(loop) 输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程,下面是REPL的官方解释及翻译A Read-Eval-Print-Loop (REPL) is available both as a standalone program and easi...

2018-10-01 11:54:16 6369

原创 Python中的模块导入及重载简析

简单来说,每一个.py结尾的Python源代码文件都是一个模块。 其他文件可以通过导入一个模块读取这个模块的内容。导入从本质来讲,就是载入另一个文件,并能够读取那个文件的内容。一个模块的内容通过这样的属性能够被外部模块使用。这种基于模块的方式使模块变成了Python程序架构的一个核心概念。更大的程序往往以多个模块的形式出现,并且导入了其他模块文件的工具。如果在当前目录下,假如你有文件名为scr...

2018-09-29 22:46:38 428

原创 Linux下如何查看bash版本并自动安装bash?

一般情况下,在安装Linux系统时会自动安装好bash软件,查看系统bash版本的命令如下:[root@localhost ~]# cat /etc/redhat-release # 显示Linux的环境版本CentOS release 6.8 (Final)[root@localhost ~]# bash --versuion # 显示bash的版本GNU...

2018-09-29 22:09:34 31425 2

原创 查看Linux系统默认Shell的两种方式

在常用的操作系统中:Linux下默认的Shell是Bourne Again Shell(bash) Solaris和FreeBSD下默认的是Bourne shell(sh) AIX下默认的是korn Shell(ksh)可以通过下面两种方式来查看Linux系统默认的Shell方式一:  通过SHELL变量来查看[root@localhost ~]# echo $SHELL/b...

2018-09-29 21:33:28 12202

原创 Python中使用filter过滤列表的一个小技巧

有的时候使用dir(Module),可以查看里面的方法,但是模块自带的属性"__"开头的也会显示,如下:>>> import random>>> dir(random)['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWO...

2018-09-24 11:18:49 12450 1

原创 Python中的Logging模块学习

Python中的日志模块,使用使用logging模块,该模块自2.3版本开始便是Python标准库的一部分。日志的两个目的:诊断功能: 记录与应用程序操作相关的日志,方便诊断。 审计功能: 为商业分析而记录的日志,具备审计的功能。日志 vs 打印当打印显示帮助文档时,打印无疑是个不错的选择,但是更多情况,都是日志的方式更优秀,原因如下: 日志事件产生的日志记录 ,包含清晰可用的...

2018-09-15 09:38:09 559

原创 Python中的json库的简单使用

json库可以自字符串或文件中解析JSON。 该库解析JSON后将其转为Python字典或者列表。它也可以转换Python字典或列表为JSON字符串,常用的方法其实就两种dump和load.一: 使用json.loads方法将json对象转成Python对象比如说,下面一个字符串对象>>> s = '{"first_name": "Guido", "last_nam...

2018-09-09 09:40:18 9847

原创 Python中xmltodict对xml的操作

xmltodict是另一个简易的库,它致力于将XML变得像JSON.下面是一个简单的示例XML文件:<?xml version="1.0"?><mydocument has="an attribute"> <and> <many>elements</many> <m

2018-09-08 10:12:14 17257 1

原创 Python使用untangle模块对XML文件进行解析

untangle库可以将XML文档映射为一个Python 对象,该对象于其结构中包含了原文档的节点与属性信息。该库为第三方库,在使用之前必须使用pip来安装下面使用的XML示例文件: bookstore.xml<?xml version="1.0"?><bookstore> <book category="COOKING"> ...

2018-09-06 19:16:09 2361

原创 Python中实现字典的排序

我们都知道,字典是hash算法,是无序显示的。 如果要使字典按创建顺序,或者按Key键的ASCII顺序,或者按Value值的顺序来排列,可以用以下两种方法。 方法一: 使用collections模块的OrderedDict方法>>> dict_1 = {} # 自然定义的字典1>>> dict_1["...

2018-09-06 11:14:28 9392 5

原创 Shell中实现进度条的小脚本

用其他编程语言可以实现进度条的显示,其实在Shell脚本中也可以实现进度条显示。下面是个进度条的简单示例#/bin/bashprogress_bar='' for i in {0..100..2}do printf "process:[%-50s]%d%%\r" $progress_bar $i sleep 0.2 progress_bar=...

2018-09-06 10:21:22 2119 2

原创 Shell中将多行合并成一行的小技巧

Shell中将多行合并成一行的小技巧,其实很简单: 每行的结尾符为\n,只要将每行的\n换成想要的分隔符,就可以达到目的了。 主要借助于tr命令:[root@host ~]# cat data127.0.0.1127.0.0.2127.0.0.3127.0.0.4[root@host ~]# cat data | tr '\n' '|' # 行间以|来分隔127...

2018-08-31 22:03:53 30212

原创 Python中使用Unicode来处理国际化文本

有的时候碰到ASCII编码的字符串和非ASCII编码的字符的操作,会报如下错误。 >>> char = "\xc3\xa4">>> print(char)Traceback (most recent call last): File "<stdin>", line 1, in <module> File &quo

2018-08-26 11:23:34 322

原创 Python检查字符串中的结束标记

经常处理字符串,想检查字符串s的结束标志,如果结束标志只有一个还好办,s.endswith(end1)就可以了,如果有多个就需要使用s.endswith(end1), s.endswith(end2), s.endswith(end3)这种笨重的方法。对于这种常见场景的处理,使用itertools模块中的imap函数可以很好解决这个问题。一个经典的应用是打印出当前目录中所有的图片文件:i...

2018-08-26 09:53:46 10194

原创 Shell中;;&在case场景中的作用

case通用用法: case $var in A) command1 ;; B) command2 ;; C) command3 ;; *) command4 ;;esac如果变量var匹配里面,匹配到了则执行相应的命令并退出case,依次从A-->B-->C;如果C里面也没有,则执行默认的*),command4; 但实际场景里面经...

2018-08-14 22:37:30 1283

原创 Shell中冒号的几个作用

作用一: 占位符#!/bin/bashvar=0if [ "$var" = "0" ]; then :else : fi作用二: 空命令,与内建的true相同#!/bin/bashwhile :do echo "dead loop..."done作用三: 与>结合结合使用,用于清空文件[root@localhost ~#]...

2018-08-13 22:32:24 5173

原创 通过一个简单的例子类学习expect

在Shell中,很多交互式场景:比如删除文件需要输入确认,登录远程服务器需要输入账号密码,登录Mysql数据库等场景......这个时候,可供选择的方案,其实有两个,一个使用here document来嵌套,另外一个使用expect。expect是tcl语言中的语法:expect 负责匹配,可以使用-r 或 -re 来进行正则匹配 send 负责发送命令 spawn负责发起一个会话,启...

2018-08-12 21:53:54 782

原创 Shell脚本中完成带单位的数据统计

经常会有需求,总计一些不同单位,要求其总和或者平均值。 比如下面的文本数据:10002.1k3.2K12.48Kb1.44M2.56mB1.1GB字节数据,里面有K,M,G,有大小写,而且后面还可能有b或者B,这个时候要求其和,这个时候就要写个小脚本来处理。下面是处理脚本.#!/bin/bashtotal=0while read LINEdo var=$...

2018-08-12 20:43:55 1916

原创 Shell中用一条命令根据服务名来杀进程

 无论是Shell脚本处理或日常操作中,让我们根据服务名来杀进程,我们一般通用的做法1. 先用ps -ef 或 ps aux来根据服务名来找到pid号2. 然后使用kill -9 PID来杀进程这样的杀个进程要两个步骤,耗时很大,而且有的进程号不只1个,有的时候是很多个,一个个执行手工,分别执行执行两个命令的话,耗时,耗力,有的时候还很容易出错。 这里有个合二为一的方法。[roo...

2018-08-11 22:12:55 2987

原创 Python来获取字符串之间的所有合集

在Python中处理单个字符,方法可以有很多,比如for循环>>> for c in "book":... print(c.upper())...BOOK>>>或者使用列表推导:>>> [c.upper() for c in "book"]['B', 'O', 'O', 'K']>&amp

2018-08-09 05:50:21 1457

原创 Python中字符串的合并

方法一: 使用join的方法>>> " ".join(["A","B","C","D"])'A B C D'方法二: 使用字符串格式化拼接>>> "%s's age is %d" % ("Jerry", 18)"Jerry's age is 18"

2018-08-08 22:24:38 23803 1

原创 Python在字符和字符值之间的转换

情形一: ASCII <=>  数字如果是要将一个字符转化为相应的ASCII码,或者将ASCII码转换成字符,ord和chr可以完成任务>>> help(ord)Help on built-in function ord in module __builtin__:ord(...) ord(c) -> integer Retur...

2018-08-08 22:00:16 2553

原创 Python使用signal模块来终止自身的进程

其实这种场景还是不少的,经常需要终止自身进程。这个时候需要使用到signal模块,并结合自身的os模块来杀进程。其实很简单:>>> import os>>> import signal>>> os.getpid() # 获取Python自身运行的进程,getppid()表示父进程1...

2018-08-07 22:41:51 4736

原创 Python通过Socket数据报传输消息

在网络中的计算机能够以一种轻量级的风格通过小消息通信,同时也不要求绝对的可靠性。 这种任务恰好是UDP协议针对的应用的类型, 而在Python中使用UDP发送数据是件很容易的事情。可以写一个UDP服务器脚本和客户端脚本,完成完成两者的通信:服务端:# FileName: server.pyimport socketport = 8001sock = socket.socket(...

2018-08-06 22:29:21 3483

原创 远程拷贝一个小tips

经常需要从本地PC向虚拟机或远端服务器上传文件,但文件一大,有时候会碰到中断的情况,这个时候对MSTSC终端工具做一个小设置,可能会起到意想不到的效果:假如要上传的本地的目录放置于D:目录下,这里就选择本地磁盘D,这样本地就会创建一个到远端的映像,就不会经常发生经常掉线的情况了。 ...

2018-08-03 21:32:51 233

原创 Python来作大小写转换

如果要将一个字符串由大写转成小写,或者由小写转成大写。 这个时候需要借助于upper()和lower()。如果要将一个句子的每个单词首字母大写,可借助于title()函数如果要将一个句子的首字母大写,可借助于capitalize()函数>>> "one Two thrEe".upper() # 每个字符全部大写'ONE TWO THREE'&gt...

2018-08-01 22:22:03 7819

原创 Python来获取昨天和今天的日期

这个问题也是常见问题,可能碰到这种问题我们就会这么写yesterday = today - 1,tomorrow = today + 1;这样写实际会报错,会提示不支持的操作类型。碰到时间差的问题的,优先考虑datetime模块中的timedelta。具体获取很简单>>> import datetime>>> today = datetime.date....

2018-08-01 21:39:57 19284

原创 Python来检查当前时间是否为夏令时

夏令制(Daylight Saving Time, DST),如果想知道当前的时间是否是夏令时,可以借助于time模块的localtime函数来完成。先看下localtime()里面的具体项:>>> time.localtime()time.struct_time(tm_year=2018, tm_mon=7, tm_mday=28, tm_hour=17, tm_min...

2018-07-28 17:40:42 4734

原创 Python从文件中读取指定的行

如果想根据给出的行号, 从文本文件中读取一行数据,  Python标准库linecache模块非常适合这个任务:测试文件内容 :This is line 1.This is line 2.This is line 3.This is line 4.This is line 5.This is line 6.This is line 7.This is line 8.测试...

2018-07-28 11:51:35 52026 4

原创 Python中for循环中的几点注意事项

for循环在Python中有几点要注意的地方一:大小循环问题,小循环在外,大循环在内>>> import time>>> total = 1>>> time1 = time.time()>>> for i in range(10):... for j in range(10000000):... ...

2018-07-28 11:13:05 3380

原创 Python来检查Windows的声音系统

如果想检查Windows个人PC的声音系统配置是否正常,可以使用下面小脚本:import winsoundtry: winsound.PlaySound('*', winsound.SND_ALIAS)except RuntimeError, e: print('Sound system has problems', e)else: print('Sound ...

2018-07-28 09:57:01 3348 1

原创 影响自动化集群安装部署速度的一个小因素

现在安装部署大量的服务器,经常是使用自动化脚本,并发 ssh到服务器上统一做安装部署的操作,但一个文件的配置,可能会让部署速度变慢很多,甚至会导致安装失败,这个配置文件就是/etc/sshd_config文件,该文件主要负责管理ssh服务相关的配置,如果其中一项的配置为UseDNS yes恰好,你的/etc/resolv.conf未做配置,或者配置DNS服务器IP地址不对[root...

2018-07-26 22:45:27 265

原创 Linux服务器上对网卡上各个IP地址流量统计

有的时候需要统计某个网卡,来自不同IP地址的流量统计,这个时候需要使用tcpdump + 命令来获取网卡端的数据,获取一段时间,比如说2个小时的数据,再将其重定向到某个输出文件,最后根据输出文件,来统计不同IP使用的流量最大,比如要统计TOP的流量的IP就可以简单来说,使用下面两个命令$ tcpdump -i eth0 -nv > OUTPUT # 将获取到的流量数据重定向到指定输...

2018-07-26 22:25:15 5625

原创 Python中实现替换字符串中的子串

假如有个任务: 给定一个字符串,通过查询字典,来替换给定字符中的变量。如果使用通常的方法:>>> "This is a %(var)s" % {"var":"dog"}'This is a dog'>>>其实可以使用string.Template类来实现上面的替换>>> from string impor

2018-07-24 22:01:17 4146

原创 Python将字符串逐字符或者逐词反转

如果将一个字符串逐字符来反转其实很简单>>> s = "ABCD">>> s[::-1]'DCBA'>>>如果要将一个字符串逐词反转,就没那么简单,需要做点转换。方法一:  使用普通方法来实现反转>>> words = "TOM CAT">>&am

2018-07-24 21:28:41 1175

原创 Python来验证字符串是否代表一个合法的数字

经常会碰到的场景,从文件中读取的或用户输入获得的一个字符串,看是否是合法的数字格式。 可以有两个方案。方案一: 使用最简单的也是最Pythonic的"鸭子走路">>> def legal_numbers(s):... try:... float(s)... except ValueError:... return ...

2018-07-23 21:59:08 5421

原创 Python的一键多值的处理方案

字典中,键唯一且不可变类型。实际上经常会碰到一个这样的情况,同一个键可能会对应值的情况。方案可能有好几种,比如使用列表做值,或者使用字典做值,或者使用集合做值, 这个时候就要根据值是否可以重复来确定采取那一个结构。 方案一:  值可以重复,使用[]作为值.>>> d1 = {}>>> key = 'host'>>> val = '...

2018-07-22 22:10:45 3015

原创 Python中实现字典反转的方法

有时候会碰到需求,将字典来反转,即:字典中的键作为值,而字典中的值作为键。对于字典比较小,可以使用普通方法方法一:  使用普通方法转换>>> d = {'a': 1, 'b': 2, 'c': 3}>>> def invert_dict(d):... return dict([(v,k) for (k,v) in d.iteritems()...

2018-07-22 20:24:22 20673

Perl Cookbook

Perl Cookbook, 学习Perl非常宝贵的经典!

2014-03-29

ASE_config_guide_unix

本文档用于UNIX下,Sybase Adaptation Server的安装,配置,管理。

2014-02-17

Clean Code-代码整洁之道 中文完整版清晰版

本书提出一个概念:代码的质量与其整洁度成反比。干净的代码,在质量上较为可靠,在维护上比较方便。作为编程领域内的佼佼者,作者给出了一系列行之有效的整洁代码操作实践。 本书阅读对象为一切有志于改善代码质量的程序员及技术经理。

2014-02-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除