mirror of
https://github.com/python/cpython.git
synced 2025-07-13 06:15:17 +00:00

(with one small bugfix in bgen/bgen/scantools.py) This replaces string module functions with string methods for the stuff in the Tools directory. Several uses of string.letters etc. are still remaining.
52 lines
1.1 KiB
Python
Executable file
52 lines
1.1 KiB
Python
Executable 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 file in args:
|
|
process(file, tabsize)
|
|
|
|
def process(file, tabsize):
|
|
try:
|
|
f = open(file)
|
|
text = f.read()
|
|
f.close()
|
|
except IOError, msg:
|
|
print "%s: I/O error: %s" % (`file`, str(msg))
|
|
return
|
|
newtext = text.expandtabs(tabsize)
|
|
if newtext == text:
|
|
return
|
|
backup = file + "~"
|
|
try:
|
|
os.unlink(backup)
|
|
except os.error:
|
|
pass
|
|
try:
|
|
os.rename(file, backup)
|
|
except os.error:
|
|
pass
|
|
f = open(file, "w")
|
|
f.write(newtext)
|
|
f.close()
|
|
print file
|
|
|
|
if __name__ == '__main__':
|
|
main()
|