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查找相似单词的方法
Mar 05 Python
复习Python中的字符串知识点
Apr 14 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
python 实现UTC时间加减的方法
Dec 31 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
ubuntu上安装python的实例方法
Sep 30 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
Python实现不规则图形填充的思路
Feb 02 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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文件锁定写入实例解析
2014/07/14 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
现代化办公人员工作的自我评价
2013/10/16 职场文书
致400米运动员广播稿
2014/02/07 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
python 网络编程要点总结
2021/06/18 Python
Java移除无效括号的方法实现
2021/08/07 Java/Android