从配置文件中删除制表符

时间:2015-04-22 18:37:21

标签: python io config

我正在使用此功能读取配置文件。

import numpy as np

stream = np.genfromtxt(filepath, delimiter = '\n', comments='#', dtype= 'str')

它工作得很好,但我有一个问题:制表符。

即。 输出

  

[' \ tvalue1',' 1'] [' \ t'] [' value2',' 2']

有没有办法忽略这个特殊字符?

我的解决方案是这样的:(它适用于我的目的,但它有点"丑陋")

result = {}
for el in stream:
    row = el.split('=',1)
    try:
        if len(row) == 2:
            row[0] = row[0].replace(' ','').replace('\t','') #clean the elements from not needed spaces
            row[1] = row[1].replace(' ','').replace('\t','')
            result[row[0]] = eval(row[1])
    except:
        print >> sys.stderr,"FATAL ERROR: '"+filepath+"' missetted" 
        logging.exception(sys.stderr)
        sys.exit('')

2 个答案:

答案 0 :(得分:1)

用任何内容替换选项卡:

stream = [x.replace('\t','') for x in stream]

或者用一个空格替换制表符,然后删除重复的空格:

stream = [' '.join(x.replace('\t',' ').split()) for x in stream]

删除空字符串(source):

stream = filter(None, stream)

答案 1 :(得分:0)

似乎有一种方法可以使用numpys genfromtext分配多个分隔符或注释。我建议去其他地方寻找。试试https://docs.python.org/2/library/configparser.html。这是一个带有快速示例的链接,因此您可以了解如何使用模块https://wiki.python.org/moin/ConfigParserExamples