|
|
|
#!/usr/bin/python#Remove BOM head and replace the Windows linefeeds with the Unix linebreak.#The script search the jsp files in the current directory by defalut.#You can specify the directory and the file type in the parameters#python rmbom.py [directory] [file type]#For example, you can usr python rmbom.py /home .txt to reformat the all txt files in the home directory.##warning: you should have the premission to read and write the files that you want to reform. import os, codecs, sysdef enumFiles(strDir=".", suffix=".jsp"): print "Scanning the [%s] file in [%s]" %(suffix, strDir) i=0 for item in os.listdir(strDir): currltern=os.path.abspath(os.path.join(strDir, item)) if os.path.isdir(currltern): enumFiles(currltern) else: if currltern.endswith(suffix): print "==>Now scanning: %s"%currltern, reencodeFile(currltern) i=i+1 print "<==over" print "The number of the scanned files is [%d]" %i def reencodeFile(strFilePath): file=open(strFilePath, "rb") content=file.read().replace("\r\n", "\n").replace(codecs.BOM_UTF8,"") file.close() file=open(strFilePath, "wb") file.write(content) file.close()def main(): if len(sys.argv)==1: print "In the current directory: scan the [.jsp] files" enumFiles() elif len(sys.argv)==2: print "In the %s : scan the [.jsp] files" %sys.argv[1] enumFiles(sys.argv[1]) elif len(sys.argv)==3: print "In the [%s]: scan the [%s] files" %(sys.argv[1],sys.argv[2]) enumFiles(sys.argv[1],sys.argv[2]) else: print "Error, the parameter is 2 at most!!!"if "__main__"==__name__: main() |
|