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 21 Python
用实例分析Python中method的参数传递过程
Apr 02 Python
Python with用法实例
Apr 14 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
python实现狄克斯特拉算法
Jan 17 Python
Python实现病毒仿真器的方法示例(附demo)
Feb 19 Python
python+gdal+遥感图像拼接(mosaic)的实例
Mar 10 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
Django实现简单的分页功能
Feb 22 Python
pycharm部署django项目到云服务器的详细流程
Jun 29 Python
python小型的音频操作库mp3Play
Apr 24 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
php 获取客户端的真实ip
2009/11/30 PHP
php遍历数组的方法分享
2012/03/22 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
小学中秋节活动方案
2014/02/06 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
工程造价专业求职信
2014/07/17 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书