/Tools/scripts/untabify.py
http://unladen-swallow.googlecode.com/ · Python · 52 lines · 45 code · 6 blank · 1 comment · 14 complexity · 536f9da7d7fb265a0b8fd0e5555c8748 MD5 · raw file
- #! /usr/bin/env python
- "Replace tabs with spaces in argument files. Print names of changed files."
- import os
- import sys
- import getopt
- def main():
- tabsize = 8
- try:
- opts, args = getopt.getopt(sys.argv[1:], "t:")
- if not args:
- raise getopt.error, "At least one file argument required"
- except getopt.error, msg:
- print msg
- print "usage:", sys.argv[0], "[-t tabwidth] file ..."
- return
- for optname, optvalue in opts:
- if optname == '-t':
- tabsize = int(optvalue)
- for filename in args:
- process(filename, tabsize)
- def process(filename, tabsize):
- try:
- f = open(filename)
- text = f.read()
- f.close()
- except IOError, msg:
- print "%r: I/O error: %s" % (filename, msg)
- return
- newtext = text.expandtabs(tabsize)
- if newtext == text:
- return
- backup = filename + "~"
- try:
- os.unlink(backup)
- except os.error:
- pass
- try:
- os.rename(filename, backup)
- except os.error:
- pass
- f = open(filename, "w")
- f.write(newtext)
- f.close()
- print filename
- if __name__ == '__main__':
- main()