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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
Python爬取qq空间说说的实例代码
Aug 17 Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 Python
Python实现Event回调机制的方法
Feb 13 Python
python 同时读取多个文件的例子
Jul 16 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
使用Puppeteer爬取微信文章的实现
Feb 11 Python
Python基于Socket实现简单聊天室
Feb 17 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
python调用有道智云API实现文件批量翻译
Oct 10 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
谈一谈收音机的高放电路
2021/03/02 无线电
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
python检测远程udp端口是否打开的方法
2015/03/14 Python
python机器学习之神经网络(一)
2017/12/20 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
网页美工求职信
2014/02/15 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
相亲活动方案
2014/08/26 职场文书
技术支持岗位职责
2015/02/13 职场文书
法制教育观后感
2015/06/17 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python