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中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
python处理按钮消息的实例详解
Jul 11 Python
python利用百度AI实现文字识别功能
Nov 27 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
win8.1安装Python 2.7版环境图文详解
Jul 01 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
Aug 29 Python
Python中关于logging模块的学习笔记
Jun 03 Python
python绘图pyecharts+pandas的使用详解
Dec 13 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
推荐文章系统(一)
2006/10/09 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
php解决安全问题的方法实例
2019/09/19 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
javascript中Function类型详解
2015/04/28 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
node中的session的具体使用
2018/09/14 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
Python实现控制台进度条功能
2016/01/04 Python
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
优秀幼教自荐信
2014/02/03 职场文书
Python之matplotlib绘制饼图
2022/04/13 Python