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 sys.path详细介绍
Oct 17 Python
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
Python保存MongoDB上的文件到本地的方法
Mar 16 Python
Swift中的协议(protocol)学习教程
Jul 08 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
Python操作Mongodb数据库的方法小结
Sep 10 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
什么是python的函数体
Jun 19 Python
通过实例简单了解python yield使用方法
Aug 06 Python
Python 多进程原理及实现
Dec 21 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
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
Python的mysql数据库的更新如何实现
2017/07/31 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
应届生服务员求职信
2013/10/31 职场文书
会计出纳岗位职责
2013/12/25 职场文书
关于人生的感言
2014/01/17 职场文书
婚礼主持词
2014/03/13 职场文书
原材料检验岗位职责
2014/03/15 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
交通安全标语
2014/06/06 职场文书
单位委托书格式范本
2014/09/29 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫