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实现数通设备tftp备份配置文件示例
Apr 02 Python
python操作CouchDB的方法
Oct 08 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Django Rest framework权限的详细用法
Jul 25 Python
python实现简单图书管理系统
Nov 22 Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
python中的unittest框架实例详解
Feb 05 Python
python中字符串String及其常见操作指南(方法、函数)
Apr 06 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利用imagick生成组合缩略图
2016/02/19 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
对python中各个response的使用说明
2020/03/28 Python
Python 没有main函数的原因
2020/07/10 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
介绍一下游标
2012/01/10 面试题
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
模范教师事迹材料
2014/02/10 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js