`
wss71104307
  • 浏览: 222998 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

移除文件中的BOM头--in Python

阅读更多
#!/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, sys

def 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()

 
分享到:
评论

相关推荐

    什么是BOM头?如何去除文件中的BOM头

    **什么是BOM头** BOM(Byte Order Mark)头,也称为字节顺序标记,是Unicode编码格式的...通过使用特定的文本编辑器或编写针对性的代码,我们可以轻松地移除文件中的BOM头,确保文件以正确的无BOM格式进行读取和处理。

    什么是BOM头,如何去掉BOM头.zip

    1. **Notepad++**:使用Notepad++编辑器,打开文件后,选择菜单栏中的“编码”-&gt;“转换为UTF-8无BOM”,然后保存文件,BOM头将被移除。 2. **命令行工具**:可以使用一些命令行工具,如`iconv`或Python的`codecs`库...

    Python库 | django-bom-1.195.tar.gz

    在解压的"django-bom-1.195"目录中,通常会包含以下文件和目录: 1. `setup.py`:这是一个Python脚本,用于安装和配置Django-BOM库。 2. `README.md`或`README.rst`:包含了库的说明、安装指南和使用示例。 3. `...

    无头BOM的UTF8文件判断

    7. **工具**:标签中提到的“工具”,可能是指存在专门的工具或程序,用于批量检查和处理无BOM的UTF-8文件,比如文本编辑器Notepad++有一个插件可以显示和移除文件的BOM。 8. **应用场景**:在实际应用中,判断无头...

    Python-convert2utf将目录下的全部源文件转成UTF8编码

    描述中提到的"同时移除Byte Order Mark (BOM)"是指在转换过程中,除了改变文件的编码格式,还会删除文件头的BOM标志。尽管BOM在某些情况下有助于识别文件的编码类型,但在许多编程语言和编辑器中,BOM可能会引起问题...

    BOM清除小工具.rar_BOM

    BOM清除的原理通常是读取文件内容,检测并移除UTF-8 BOM头,然后重新写入文件。在PHP中,可以使用fread和fwrite等函数来实现这一操作。例如,先读取文件内容,通过正则表达式或其他方法查找并删除BOM,再将处理后的...

    批量去BOM工具(含Qt源码)

    接着,它会逐个读取文件,移除BOM,并保存为新的文件(或者直接覆盖原文件);最后,用户会得到一个无BOM的文件集合,这些文件在各种环境中都能更好地运行和显示。 总结起来,这个批量去BOM工具是基于Qt框架开发的...

    BOM相关资料

    例如,HTML文件中,BOM可能导致浏览器解析问题,此时通常建议移除。 **BOM与编程语言** 1. **在Python中处理BOM** Python的`codecs`库提供了处理BOM的功能,如`utf_8_sig`解码器可以自动去除UTF-8的BOM。 2. **...

    Python中文件的读取和写入操作

    Python中的文件操作是编程过程中常见的任务,包括文件的读取和写入。本文将详细讲解如何在Python中进行这些操作,特别是针对文本文件。 首先,读取整个文件是最基本的文件操作之一。在Python中,你可以使用`open()`...

    Python-ftfy让Unicode文本更完整更连贯

    在LuminosoInsight项目中,`python-ftfy-0665dde`可能是该项目的一个特定版本,包含ftfy库的源代码,你可以通过查看源代码来了解更多关于ftfy的工作原理和扩展功能。通过深入学习和应用ftfy,你可以在处理Unicode...

    php utf-8编码去bom小工具

    通常,这样的工具会读取指定的文件,检测并移除BOM头,然后保存处理后的文件。 现在,让我们深入探讨一下UTF-8编码和BOM的相关知识点: 1. **UTF-8编码**:UTF-8是一种常见的Unicode字符编码方式,它可以表示...

    BOM结构的更改标记不显示问题

    2. **修改源码**:在源码中添加或移除BOM的处理逻辑,确保程序能正确读取有无BOM的文件。 3. **命令行工具**:利用命令行工具(如`iconv`或`sed`)转换文件编码,去除或添加BOM。 4. **配置文件编码**:在项目配置...

    Python中使用不同编码读写txt文件详解

    - 读取带BOM的UTF-8文件时,需要先检查并移除BOM,如`data = data[3:]`,然后解码。 7. **`codecs.open()`**: - 使用`codecs.open()`可以更方便地处理编码,如`codecs.open("filename", "r", "utf-8")`。 8. **...

    gbk/utf8编码互转

    在进行转换时,可能需要考虑是否保留或移除BOM。 在提供的`gbk2utf8转换源码`中,我们可以看到实现这个功能的具体代码逻辑。这个源码很可能是用某种编程语言(如Python)编写的一个小程序,用于自动化完成GBK到UTF-...

    解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题

    - 如果文件中有BOM(Byte Order Mark)标记,移除它以避免显示问题。 3. **检查PyCharm设置**: - 确保PyCharm中文件编码设置为UTF-8。 - 进入`Settings` -&gt; `Editor` -&gt; `File Encodings`,选择合适的编码格式...

    gb转utf8,gb转utf8

    - 如果文件包含BOM(Byte Order Mark),转换时需考虑保留或移除,因为BOM在不同编码中可能有不同的意义。 - 为了保持数据完整性,转换前应备份原始文件。 7. **实际应用** 文件命名、数据库存储、网页开发、...

    急速字典去重复

    这种任务的目的是有效地找出并移除文件中重复的行,以优化数据存储,提高数据处理效率,或者在数据分析时避免重复的数据影响结果。在本案例中,我们有一个名为"急速字典去重复"的压缩包文件,很可能是包含一个或多个...

    Unicode转换

    然而,BOM在某些情况下可能被视为额外的字符,需要注意是否在转换时保留或移除。 在实际应用中,Unicode转换通常涉及文件读写、网络通信、数据库存储等场景。例如,当你从一个使用GBK编码的文本文件读取内容并将其...

Global site tag (gtag.js) - Google Analytics