【发布时间】:2020-01-28 15:56:59
【问题描述】:
我有一个包含以下格式数据的语料库文件:
Hi. bonjour. CC-BY 2.0 (France) Attribution: tatoeba.org #538123 (CM) & #629296 (Samer)
black! noir! CC-BY 2.0 (France) Attribution: tatoeba.org #906328 (papabear) & #1245450 (saeb)
基本上用 \t 分成三个字段。例如:
嗨 \t bonjour \t CC-BY 2.0(法国)署名:tatoeba.org #538123 (CM) & #629296 (Samer)
我试图只获取 key:value:
Hi. bonjour.
black! noir!
并避免接下来发生的所有其他事情。 这就是我在 key:value 之后添加额外元数据之前的做法:
def load_doc(filename):
with codecs.open(filename, "r+", "utf-8") as file:
file = file.read()
return file
def to_pairs(doc):
lines = doc.strip().split('\n')
pairs = [line.split('\t') for line in lines]
return pairs
pairs = to_pairs(load_doc(filename))
感谢您的帮助!
【问题讨论】:
-
您可以使用捕获组使用正则表达式模式来完成它,但是您为什么不直接修改当前代码,所以在
pairs = [line.split('\t') for line in lines]之后只需返回一个带有 paris[0] 和pairs[1 的新数组]?
标签: regex python-3.x file parsing