python 无疑是当下火上天的语言,但是我们又不拿来工作,那么能拿来干啥呢?我是这么干的。

1. 平时工作开发用不上,就当个计算器吧!

python
# 加减乘除
>>> (3 + 2) - 5 * 1
5
# 位运算
>>> 3 << 2
12
# x ^ y 幂次方运算,不能开方运算
>>> 3 ** 2
9
# 用另一种计算幂次方的运算,可以开方运算
>>> pow(9, 0.5)
3.0
# 作进制转换,如二进制转换,十进制转n进制
>>> bin(2)
'0b10'
>>> hex(25)
'0x19'
>>> oct(10)
'012'
>>> int('e0', 16)
224
# 将十进制转换为二进制,以全0占位形式显示二进制,更方便查看,默认为32位,使用如下图所示
def decbin(i, bit=32):return (bin(((1 << bit) - 1) & i)[2:]).zfill(bit)

2. 做简单爬虫
#!/usr/bin/python
# -*- coding: UTF-8 -*-import urllib,urllib2
import re
import os
import HTMLParser
dirbase = '/tmp'
urlbase = 'http://hg.openjdk.java.net'
url= urlbase + '/jdk8u/jdk8u/jdk/file/dddb1b026323/src'        #/jdk,/hotspot
skip_to_p = ''
skip_find = False;
textmod ={'user':'admin','password':'admin'}
textmod = urllib.urlencode(textmod)
print(url)
req = urllib2.Request(url = '%s%s%s' % (url,'?',textmod))
res = urllib2.urlopen(req)
res = res.read()
alink = re.findall(r'<a',res)
allflist = []table=re.findall(r'<tbody class="stripes2">(.+)<\/tbody>',res, re.S)harr = re.findall(r'href="(/jdk8u[\w\/\._]+)">(?!\[up\])', table[0])def down_src_recursion(harr):global allflist,skip_find;if(not harr):return False;i=0; arrlen = len(harr)lock_conflict_jump_max = 2;   # 遇到文件锁时跳过n个文件,当前仍需跳过的文件数量lock_conflict_jumping = 0;print("in new dir cur...")if(len(allflist) > 1500):print('over 1500, cut to 50 exists...')allflist = allflist[-800:]for alink in harr:i += 1;alink = alink.rstrip('/')if(skip_to_p and not skip_find):if(alink != skip_to_p):print('skip file, cause no find..., skip=%s,now=%s' % (skip_to_p, alink))continue;else:skip_find = True;if(alink in allflist):print('目录已搜寻过:' + alink)continue;pa = dirbase + alinkif(os.path.isfile(pa)):print('文件已存在,无需下载: ' + pa)continue;lockfile=pa+'.tmp'if(os.path.isfile(lockfile)):lock_conflict_jumping = lock_conflict_jump_max;print('文件正在下载中,跳过+%s...: %s' % (lock_conflict_jumping, lockfile))continue; else:if(lock_conflict_jumping > 0):lock_conflict_jumping -= 1;print('文件正在下载中,跳过+%s...: %s' % (lock_conflict_jumping, lockfile))continue;# 首先根据后缀把下载中的标识标记好,因为网络下载时间更慢,等下载好后再加标识其实已为时已晚if(pa.endswith(('.gif','.jpg','.png', '.xml', '.cfg', '.properties', '.make', '.sh', '.bat', '.html', '.c','.cpp', '.h', '.hpp', '.java', '.1'))):os.mknod(lockfile);reqt = urllib2.Request(urlbase + alink)rest = urllib2.urlopen(reqt)rest = rest.read()allflist.append(alink)if(rest.find('class="sourcefirst"') > 0):print('这是个资源文件:%s         %d/%d' % (alink, i, arrlen))if(not os.path.isfile(lockfile)):os.mknod(lockfile);filename = alink.split('/')[-1]linearr = re.findall(r'<span id=".+">(.+)</span>', rest)fileObject = open(dirbase + alink, 'w')for line in linearr:try:line = HTMLParser.HTMLParser().unescape(line)except UnicodeDecodeError as e:print('oops, ascii convert error accour:', e)fileObject.write(line + '\r\n')fileObject.close()os.remove(lockfile); else:print('这是目录:%s        %d/%d' % (alink, i, arrlen))if(not os.path.exists(pa)):print('创建目录:%s' % alink)os.makedirs('/tmp' + alink, mode=0777)ta=re.findall(r'<tbody class="stripes2">(.+)<\/tbody>',rest, re.S)ha = re.findall(r'href="(/jdk8u[\w\/\._]+)">(?!\[up\])', ta[0])down_src_recursion(ha)# go...
down_src_recursion(harr);

做文件搜索,替换:4. 做简单代码验证
# 做简单字符查找验证
>>> '234234fdgdfs'.find('f')
6
>>> '234234fdgdfs'.index('f')
6
>>> '234234fdgdfs'[2:5]
'423'
# 做正则匹配
>>> re.findall(r'[a-zA-Z0-9]*\.[a-zA-Z1-9]*[\.|com]*', 'www.baidu.com')
['www.baidu.com']

5. 写个运维脚本,监听本机8080端口的运行状态,如果发现挂了,就发送邮件通知主人,并重启服务器。

#!/usr/bin/env python
#!coding=utf-8
import os
import time
import sys
import smtplib
from email.mime.text import MIMETextdef send_email (warning):msg = MIMEText(warning)msg['Subject'] = 'python send warning mail'msg['From'] = '测试了<rootrr@163.com>'try:smtp = smtplib.SMTP()to_mail = 'xx@163.com'from_mail = 'xx@163.com'smtp.connect(r'smtp.qiye.163.com')smtp.login('xx@163.com', 'xxx123')smtp.sendmail(from_mail, to_mail, msg.as_string())smtp.close()print('send mail to %s, content is: %s' % (to_mail, msg))except Exception as e:print("Send mail Error: %s" % e)
# 监听状态中。。。
while True:http_status = os.popen('netstat -tulnp | grep ":8080"','r').readlines()try:if http_status == []:os.system('service tomcat7 start')time.sleep(3)    # 等待启动new_http_status = os.popen('netstat -tulnp | grep ":8080"','r').readlines()str1 = ''.join(new_http_status)is_port = -1;send_email(warning = "8080 port shutdown, This is a warning!!!")  # 发送通知try:is_port = str1.split()[3].split(':')[-1]except IndexError, e:print("out of range:", e)if is_port != '8080':print 'tomcat 启动失败'else:print 'tomcat 启动成功'else:print '8080端口正常'time.sleep(5)except KeyboardInterrupt:sys.exit('out order\n')  

6. 科学计算,大数据,图形识别。。。  

  看工作需要!

以下命令为反向kill某个端口的服务

# netstat -tunlp | grep ':8080' | awk '{split($7, arr, "/"); print(arr[1])}' | kill -9 

 
 

嘿!我用python帮我干这些事相关推荐

  1. 别再Ctrl+V啦!用Python这个工具30分钟帮你干完一天的工作!

    而对这些任务的处理方式,可以体现出你的工作态度和工作潜力. 有的人不断寻找最优解,最终将自己从这些事项中解脱出来:有些人还是习惯用老方法,在简单的复制粘贴中消耗时光,让人唏嘘. 前段时间,朋友娜娜跟我 ...

  2. python查看微信撤回消息_想查看微信好友撤回的消息?Python帮你搞定

    要说微信最让人恶心的发明,消息撤回绝对能上榜. 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于 ...

  3. python压缩教程_无需压缩软件,用python帮你操作压缩包

    写在之前 压缩包是互联网上软件发布的标准格式,同时对于系统管理很有用处.当我们需要将多份文件发送给别人的时候,最好通过压缩包的形式发送,还有在备份某些文件的时候,为了减少磁盘空间的占用,也需要对备份的 ...

  4. python色卡识别_用Python帮小姐姐选口红,人人都是李佳琦

    原标题:用Python帮小姐姐选口红,人人都是李佳琦 对于李佳琦,想必知道他的女生要远远多于男生,李佳琦最早由于直播向广大的网友们推荐口红,逐渐走红网络,被大家称作"口红一哥".不 ...

  5. 【微信辅助】疫情当前,python帮你找出朋友圈的武汉朋友给予关怀

    我是程序员小小叶,为大家带来原创精彩技术内容. 疫情无论是对于个体还是企业都是无法承受之重.希望疫情早日过去,这是作为一个普通人一个的小小心愿. 我们身边的亲朋好友也或多或少受到了疫情的影响,让我们来 ...

  6. 全网惟一面向软件测试人员的Python基础教程-在Python中怎么干倒字符串?

    全网惟一面向软件测试人员的Python基础教程 起点:<python软件测试实战宝典>介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你 ...

  7. python爬虫是干嘛的?python爬虫能做什么?

    python爬虫可以用于收集数据,爬虫是一个爬虫程序,一个程序的运行速度是非常快的,而且不会因为重复的事情感到疲倦,接下来我们一起学习python爬虫是干嘛用的,python爬虫究竟能做什么呢?pyt ...

  8. python什么工作好找女朋友_程序员,三分钟教你用 Python 帮你找一个女朋友

    原标题:程序员,三分钟教你用 Python 帮你找一个女朋友 什么是单身税? 单身税的历史可以追溯到2015年韩国的新政, 低生育率逼得韩国产生了这一政策. 现在我国也要实行这一政策, 很多单身狗就接 ...

  9. python抢火车票_听说你能用 Python 帮我抢火车票?!

    原标题:听说你能用 Python 帮我抢火车票?! 文 | 车栗子 来源 |量子位公众号 想要十一回家的小伙伴们,大概刚刚经历了一波抢票大战. 顺便把一个Python抢票工具,送到了GitHub趋势榜 ...

最新文章

  1. 湖南工业大学java试卷_湖南工业大学数控加工技术试卷.doc
  2. oracle 备份 无客户端,已解决: 备份linux oracle 突然不能备份了 - Dell Community
  3. Linux文件系统目录结构
  4. 5月24日起,每晚8点,实时数仓入门训练营见!
  5. android webview onconsolemessage,Android WebView一些特殊的使用
  6. VueJS定义组件规则
  7. Sublime Text中文乱码
  8. 怎样写出别人无法维护的代码
  9. 面向对象开发方法概述
  10. java socket 工具_java Socket简易聊天工具
  11. IDEA 配置Java环境
  12. 海思Hi3519AV100 emmc flash方式 linux系统移植 hitool工具烧写
  13. Android驱动开发过程中常用的adb指令
  14. 海康威视摄像头 rtsp 地址格式
  15. 裂变红包,金额打散的方法
  16. AutoCAD安装及激活
  17. C++友元(友元函数)
  18. xcode archive 后没有dsym文件
  19. golang 实战企业网盘
  20. 《Raytracing In One Weekend》学习笔记 Chapter 1、2、3、4、5、6、7、8、9、10、11、12、13

热门文章

  1. axure中备注线_琉璃:璇玑小本子上,别人名字都有备注唯独司凤没有,意义很浪漫...
  2. 水磨石地面分隔条设置示意图_水磨石抛光过程中什么时候用百洁垫?什么时候用百亮钢丝棉?...
  3. python list 和矩阵的切片
  4. 生物科技或成最大赢家,但不止蛋白质 | Q2科技圈进展盘点
  5. 只是pip安装输错字母,你就可能中了挖矿病毒
  6. 英伟达首次实现SDF实时3D渲染,还是细节超清晰的那种
  7. 6万广州人坐过无人出租车,过半月薪一万以上 | 中国首份Robotaxi乘客调研报告...
  8. mybatis 思维导图,让 mybatis 不再难懂(二)
  9. Xcode使用正则表达式替换
  10. IDC: New H3C集团正式启动——中国企业IT新星时代已然来临