我正在使用此功能读取配置文件。
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('')
答案 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