掘金社区

python能不能给个configparser encoding设置的接口Pinned highlighted

gscq 发表在掘金2 2015-10-09 08:16:17

掘金2
948
7
0

牵扯到跨平台开发的问题,应该给个设置配置文件编码的接口,目前我手动更改api.py里的

self.config.read(self.config_file, encoding='utf-8')

希望能有个接口改这个

评论: 7
  • 这是python自身的使用习惯的问题。配置文件的文件编码其实是不确定的,api不好作假设,因为文件有可能是utf8,有可能是gb2312,有可能是what ever。程序要可靠的话,需要检测一下文件编码。python中蛮简单的,打开文件时可以指定encoding。

    2015-11-17 07:54:48
  • api不需要做假设吧,默认用locale.getpreferredencoding(),参见Processing Text Files in Python 3 — Nick Coghlan's Python Notes 1.0 documentation 。 只是这个接口需要暴露到外面吧,我用的时候需要统一编码。

    2015-11-17 07:58:15
  • 掘金需要同时支持python2&3. 策略代码中稍作调整就可以处理好这种情况?

    2015-11-17 08:04:25
  • 更好的实践是,python中就不要用ini文件作配置,配置直接写到python代码中。ini之类的东西主要是为编译型语言提供灵活性的,对python用处不大,反而复杂化了问题。

    2015-11-17 08:06:56
  • 这是你StrategyBase里加载配置文件读取指定编码的问题,继承StrategyBase的类不好绕过的吧。好像Python2的configparser是没这个接口。我认为python配置写到代码才是复杂化了问题。

    2015-11-17 08:18:36
  • pytohn2可以用其他方法实现 https://pymotw.com/2/ConfigParser/

    2015-11-17 08:22:53
  • 好吧,你说服我了。下个版本增加个kw参数: StrategyBase(... config_file_encoding='utf8')

    2015-11-17 08:34:14

Looks like your connection to 掘金量化社区 - 量化交易者的策略交流学习社区 was lost, please wait while we try to reconnect.