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 相关文章推荐
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
Tornado Web Server框架编写简易Python服务器
Jul 28 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
Oct 30 Python
Django实现学员管理系统
Feb 26 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
python-视频分帧&amp;多帧合成视频实例
Dec 10 Python
python图形用户接口实例详解
Dec 16 Python
python在不同条件下的输入与输出
Feb 13 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
详解pandas映射与数据转换
Jan 22 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 常用类汇总 推荐收藏
2010/05/13 PHP
php设计模式之观察者模式的应用详解
2013/05/21 PHP
php生成excel文件的简单方法
2014/02/08 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
ThinkPHP安装和设置
2015/07/27 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
原生js实现购物车
2020/09/23 Javascript
numpy找出array中的最大值,最小值实例
2018/04/03 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python类的实例化问题解决
2019/08/31 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
医学院四年学习生活的自我评价
2013/11/06 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书