我有一个包含以下内容的文件:
(стат.{0,4}) (\d+) : $1 $2
(пункт.{0,3}) (\d+): $1 $2
(\d+) ((январ|феврал|март|апрел|ма|июн|июл|авг|сентябр|октябр|ноябр|декабр).{0,3}) : $1 $2
如何从这个文件中创建一个类似这样的字典?我需要在正则表达式中用$替换$,并将r'添加到字典中的键和值,
dic = {r'(стат.{0,4}) (\d+)' : r'\1 \2',
r'(пункт.{0,3}) (\d+)': r'\1 \2',
r'(\d+) ((январ|феврал|март|апрел|ма|июн|июл|авг|сентябр|октябр|ноябр|декабр).{0,3})' : r'\1 \2'}
提前谢谢
答案 0 :(得分:2)
您无需添加r
。这是特定于python解析器告诉它将字符串解释为原始字符串。当您从文件中读取字符串时,它们已经是“原始”。
在这种情况下,它可能很简单:
with open('file') as fin:
d = {}
for line in file:
key, value = line.split(':')
d[key.strip()] = value.replace('$', '\').strip()
或者,用codecs.open
打开它可能会更好:
import codecs
with codecs.open('file', 'rb', 'utf-8') as fin:
...