Python脚本实现格式化css文件


Posted in Python onApril 08, 2015

最近研究研究了css,少不了去网上分析一下别人的网页, 但很多网站的css文件都是要么写在一行,要么一个换行都没有,看起来极其痛苦,所以写一个脚本转换一下,转换为比较有可读性的格式。下面就是这个脚本:

import string, sys
import re, StringIO

TAB=4


def format(ss):
  f = open (ss, "r")
  data = f.read()
  f.close()
  
  dlen = len(data)
  i = 0
  buf = StringIO.StringIO()
  start = 0
  while i < dlen:
    if data[i] == '{':
      
      buf.write(data[start:i] + ' { ')
      i = i + 1
      start = i
    elif data[i] == '}':
      last = string.strip(data[start:i])
      if last:
        buf.write(' '*TAB + last + ';')
      buf.write(' } ')
      i = i + 1
      start = i
      
    elif data[i] == ';':
      line = string.strip(data[start:i])
      
      buf.write(' '*TAB + line + '; ')
      i = i + 1
      start = i
    
    else:
      i = i + 1
  buf.write(data[start:i+1])
  
  return buf.getvalue()
  
  
if __name__ == '__main__':
  if len(sys.argv) == 1:
    print 'usage: cssformat.py filename'
    sys.exit()
  
  ret = format(sys.argv[1])
  print ret

使用方法:

python cssformat.py  待转换的文件名 > 转换后保存的文件

Python 相关文章推荐
Python pass 语句使用示例
Mar 11 Python
python中的sort方法使用详解
Jul 25 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
使用python实现生成用户信息
Mar 20 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
Python中偏函数用法示例
Jun 07 Python
python实现决策树分类
Aug 30 Python
django框架之cookie/session的使用示例(小结)
Oct 15 Python
Python安装Flask环境及简单应用示例
May 03 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
简单了解Python读取大文件代码实例
Dec 18 Python
Python实现获取操作系统版本信息方法
Apr 08 #Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 #Python
python模块之StringIO使用示例
Apr 08 #Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 #Python
Python实现的简单文件传输服务器和客户端
Apr 08 #Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 #Python
编写简单的Python程序来判断文本的语种
Apr 07 #Python
You might like
让你的PHP同时支持GIF、png、JPEG
2006/10/09 PHP
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
详解如何运行vue项目
2019/04/15 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
销售求职信范文
2014/05/26 职场文书
初中毕业生自我评价
2015/03/02 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL