亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 10395 | 回復(fù): 3
打印 上一主題 下一主題

去除utf-8文件bom頭的py腳本,剛寫的,共享下 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-05-28 11:38 |只看該作者 |倒序瀏覽
我寫的有個項目不知道怎么的再上傳后文件全加了bom頭,一個一個修改起來比較麻煩,所以查了下資料寫了個批處理的腳本,共享給大家看看。這個腳本如果在有中文目錄的環(huán)境下執(zhí)行可能會有點編碼問題,不過一般的程序文件好像沒中文目錄,哈哈
  1. #coding=utf-8

  2. '''
  3. * 去除指定類型文件的bom頭
  4. * 版權(quán)所有
  5. * @author      t6760915<t6760915@gmail.com>
  6. * @version     $Id: trim_bom.py $
  7. '''

  8. import os
  9. import sys
  10. import codecs

  11. class TrimBom:
  12.    
  13.     basePath = ''
  14.     fileList = []
  15.     trimExtList = ['php', 'css', 'js', 'py', 'pl', 'html', 'htm']

  16.     #去除字符串中的bom部分
  17.     def trim_bom(self, str):
  18.         if not str:
  19.             return ''
  20.         
  21.         if len(str) < 3:
  22.             return ''
  23.         
  24.         if str[:3] == codecs.BOM_UTF8:
  25.             return str[3:]
  26.         
  27.         return str

  28.     #去除某文件的bom頭
  29.     def trim_file_bom(self, fileName):
  30.         if not fileName:
  31.             return False
  32.         
  33.         if not os.path.exists(fileName):
  34.             return False

  35.         try:
  36.             fp = open(fileName, 'r')
  37.             html_sourse = fp.read()
  38.             fp.close()
  39.         except:
  40.             return False

  41.         html_result = self.trim_bom(html_sourse)

  42.         if html_result == html_sourse:
  43.             return False

  44.         try:
  45.             fp = open(fileName, 'w')
  46.             fp.write(html_result)
  47.             fp.close()
  48.         except:
  49.             return False

  50.         return True

  51.     #獲取指定類型文件名列表
  52.     def getFileListByExt(self, path):
  53.         if not path:
  54.             return False

  55.         path = os.path.normpath(path)

  56.         if not os.path.exists(path):
  57.             return False

  58.         if os.path.isfile(path) and path.split('.')[-1] in self.trimExtList:
  59.             trimFlag = self.trim_file_bom(path)

  60.             if trimFlag:
  61.                 print 'process %s success...' % path.replace(self.basePath, '').replace('\\', '/')
  62.             
  63.         elif os.path.isdir(path):
  64.             fileNameList = os.listdir(path)
  65.             for fileName in fileNameList:
  66.                 fileName = os.path.normpath('%s/%s' % (path,fileName))
  67.                 self.getFileListByExt(fileName)
  68.         
  69.         return False

  70.     #運行函數(shù)入口
  71.     def run(self, path):
  72.         self.basePath = os.path.normpath(path)
  73.         self.getFileListByExt(path)

  74. if __name__ == '__main__':
  75.     if len(sys.argv) < 2:
  76.         print 'USEAGE:python %s dirName' % __file__
  77.         sys.exit(0)
  78.    
  79.     tObj = TrimBom()
  80.     tObj.run(sys.argv[1])
復(fù)制代碼
trim_bom.rar (971 Bytes, 下載次數(shù): 126)

評分

參與人數(shù) 1可用積分 +5 收起 理由
2gua + 5 原創(chuàng)內(nèi)容

查看全部評分

論壇徽章:
0
2 [報告]
發(fā)表于 2010-05-28 12:47 |只看該作者
不錯啊,原創(chuàng)內(nèi)容,開源精神,值得贊揚。

論壇徽章:
0
3 [報告]
發(fā)表于 2010-05-28 13:23 |只看該作者
本帖最后由 luffy.deng 于 2010-05-28 13:29 編輯

  1.         if not fileName:
  2.             return False
  3.         
  4.         if not os.path.exists(fileName):
  5.             return False

  6.         try:
  7.             fp = open(fileName, 'r')
  8.             html_sourse = fp.read()
  9.             fp.close()
  10.         except:
  11.             return False
復(fù)制代碼
t6760915 發(fā)表于 2010-05-28 11:38

既然做異常處理  前面兩個if 不是多余么。 另外如果子目錄下的文件也要處理就不如用walk了 省得isdir  isfile 的判斷了。

論壇徽章:
0
4 [報告]
發(fā)表于 2010-05-28 13:31 |只看該作者
既然做異常處理  前面兩個if 不是多余么。 另外如果子目錄下的文件也要處理就不如用walk了 省得isdir  is ...
luffy.deng 發(fā)表于 2010-05-28 13:23



    看了你的建議還是將前面兩個處理去掉的好,學(xué)習(xí)了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP