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创建和使用字典实例详解
Nov 01 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
深入理解Python3 内置函数大全
Nov 23 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
如何获取Python简单for循环索引
Nov 21 Python
基于python读取.mat文件并取出信息
Dec 16 Python
Python新手如何理解循环加载模块
May 29 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 Python
Python实现byte转integer
Jun 03 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数据库操作面向对象的优点
2006/10/09 PHP
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
Django中create和save方法的不同
2019/08/13 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
init进程的作用
2012/04/12 面试题
小学运动会表扬稿
2014/01/19 职场文书
揠苗助长教学反思
2014/02/04 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
护理见习报告范文
2014/11/03 职场文书
优秀团员个人总结
2015/02/26 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫