设为首页 - 加入收藏 定西365英超体育在线投注_365体育投注分别_365体育投注平台盘口 (http://www.0932zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 2017 平台 为什么 芯片
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

8 个 Python 实用脚本,收藏备用

发布时间:2019-10-11 15:02 所属栏目:[优化] 来源:实验楼
导读:脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作。 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么。完成这个任务,如果一味希望采用编译型语言来编

脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作。

8 个 Python 实用脚本,收藏备用

例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么。完成这个任务,如果一味希望采用编译型语言来编写这样的代码,实践中的时间和精力是不够的,这个时候就需要发挥脚本的神奇作用!

好不夸张的说,能否写出高效实用的脚本代码,直接影响着一个程序员的幸福生活[下班时间]。下面整理 8 个实用的 Python 脚本,需要的时候改改直接用,建议收藏!

1.解决 linux 下 unzip 乱码的问题。

  1. import?os?
  2. import?sys?
  3. import?zipfile?
  4. import?argparse?
  5. s?=?'\\x1b[%d;%dm%s\\x1b[0m'??
  6. def?unzip(path):?
  7. ?file?=?zipfile.ZipFile(path,"r")?
  8. ?if?args.secret:?
  9. ?file.setpassword(args.secret)?
  10. ?for?name?in?file.namelist():?
  11. ?try:?
  12. ?utf8name=name.decode('gbk')?
  13. ?pathname?=?os.path.dirname(utf8name)?
  14. ?except:?
  15. ?utf8name=name?
  16. ?pathname?=?os.path.dirname(utf8name)?
  17. ?#print?s?%?(1,?92,?'?>>?extracting:'),?utf8name?
  18. ?#pathname?=?os.path.dirname(utf8name)?
  19. ?if?not?os.path.exists(pathname)?and?pathname?!=?"":?
  20. ?os.makedirs(pathname)?
  21. ?data?=?file.read(name)?
  22. ?if?not?os.path.exists(utf8name):?
  23. ?try:?
  24. ?fo?=?open(utf8name,?"w")?
  25. ?fo.write(data)?
  26. ?fo.close?
  27. ?except:?
  28. ?pass?
  29. ?file.close()?
  30. def?main(argv):?
  31. ?######################################################?
  32. ?#?for?argparse?
  33. ?p?=?argparse.ArgumentParser(description='解决unzip乱码')?
  34. ?p.add_argument('xxx',?type=str,?nargs='*',?\?
  35. ?help='命令对象.')?
  36. ?p.add_argument('-s',?'--secret',?action='store',?\?
  37. ?default=None,?help='密码')?
  38. ?global?args?
  39. ?args?=?p.parse_args(argv[1:])?
  40. ?xxx?=?args.xxx?
  41. ?for?path?in?xxx:?
  42. ?if?path.endswith('.zip'):?
  43. ?if?os.path.exists(path):?
  44. ?print?s?%?(1,?97,?'?++?unzip:'),?path?
  45. ?unzip(path)?
  46. ?else:?
  47. ?print?s?%?(1,?91,?'?!!?file?doesn\'t?exist.'),?path?
  48. ?else:?
  49. ?print?s?%?(1,?91,?'?!!?file?isn\'t?a?zip?file.'),?path?
  50. if?__name__?==?'__main__':?
  51. ?argv?=?sys.argv?
  52. ?main(argv)?

2.统计当前根目录代码行数。

  1. #?coding=utf-8?
  2. import?os?
  3. import?time?
  4. #?设定根目录?
  5. basedir?=?'./'?
  6. filelists?=?[]?
  7. #?指定想要统计的文件类型?
  8. whitelist?=?['cpp',?'h']?
  9. #遍历文件,?递归遍历文件夹中的所有?
  10. def?getFile(basedir):?
  11. ?global?filelists?
  12. ?for?parent,dirnames,filenames?in?os.walk(basedir):?
  13. ?for?filename?in?filenames:?
  14. ?ext?=?filename.split('.')[-1]?
  15. ?#只统计指定的文件类型,略过一些log和cache文件?
  16. ?if?ext?in?whitelist:?
  17. ?filelists.append(os.path.join(parent,filename))?
  18. #统计一个的行数?
  19. def?countLine(fname):?
  20. ?count?=?0?
  21. ?#?把文件做二进制看待,read.?
  22. ?for?file_line?in?open(fname,?'rb').readlines():?
  23. ?if?file_line?!=?''?and?file_line?!=?'\n':?#过滤掉空行?
  24. ?count?+=?1?
  25. ?print?(fname?+?'----'?,?count)?
  26. ?return?count?
  27. if?__name__?==?'__main__'?:?
  28. ?startTime?=?time.clock()?
  29. ?getFile(basedir)?
  30. ?totalline?=?0?
  31. ?for?filelist?in?filelists:?
  32. ?totalline?=?totalline?+?countLine(filelist)?
  33. ?print?('total?lines:',totalline)?
  34. ?print?('Done!?Cost?Time:?%0.2f?second'?%?(time.clock()?-?startTime))?

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章