ConfigParser讀取記事本、notepad++修改后的配置文件會出現:ConfigParser.MissingSectionHeaderError


使用ConfigParser來讀取配置文件,經常會發現經過記事本、notepad++修改后的配置文件讀取時出現下面的問題: 

ConfigParser.MissingSectionHeaderError: File contains no section headers.
file: ../conf/mal_crawler_allcids.conf, line: 1
'\xef\xbb\xbf[basic_config]\r\n'


調試程序后發現文件頭部被追加了信息:\xef\xbb\xbf,然后ConfigParser解析出錯 
google了下\xef\xbb\xbf,原因:在window下面用記事本、notepad等編輯文件的時候,如果保存為UNICODE或UTF-8,分別會在文件的開頭加上兩個字節“\xFF\xFE”和三個字節“\xEF\xBB\xBF”。 即:BOM


解決方法:配置文件使用前,去掉這些BOM字節

def remove_BOM(config_path):
  content = open(config_path).read()
  content = re.sub(r"\xfe\xff","", content)
  content = re.sub(r"\xff\xfe","", content)
  content = re.sub(r"\xef\xbb\xbf","", content)
  open(config_path, 'w').write(content)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM