Python:读取.txt文件而不将其内容放在字符串中

我创建了一个.txt文件,其中包含模型的训练数据.训练样本具有以下特定结构:

("sample sentence",
{"entities": [ ]})

我喜欢其中的600个,需要在python中列出.但是,当我使用file.readlines()等进行“常规” python阅读时,我得到了所有导入为字符串的示例,这些示例基本上是以下内容:

'("sample sentence",'
'{"entities": [ ]})'

是什么使训练数据对于模型无效.

所以我的问题是我怎么能告诉python读取.txt文件而不使用任何字符串格式,而是按原样读取它?

//编辑:

.txt是包含训练数据的文件,该文件适合遵循NER注释方案的spaCy模型的训练过程.来自spaCy文档页面的带有NER注释方案的培训数据示例:

TRAIN_DATA = [
     ("Uber blew through $1 million a week", {'entities': [(0, 4, 'ORG')]}),
     ("Google rebrands its business apps", {'entities': [(0, 6, "ORG")]})]

我的.txt文件看起来完全像这样,除了.txt文件的开头和结尾没有[]并且两者之间的换行符是断行的.因此,此示例在我的.txt文件中如下所示:

("Uber blew through $1 million a week", 
{'entities': [(0, 4, 'ORG')]}),

("Google rebrands its business apps", 
{'entities': [(0, 6, "ORG")]})
最佳答案
我想出了以下几点.对于您的示例,它可以正常工作.试试看.

from ast import literal_eval
with open(file_name, 'r') as f:
  TRAIN_DATA = literal_eval('[' + ''.join(f.readlines()) + ']')

要么

from ast import literal_eval
with open(file_name, 'r') as f:
  TRAIN_DATA = literal_eval('[' + f.read() + ']')

这将读取整个文件,并在评估之前添加缺少的方括号.

转载注明原文:Python:读取.txt文件而不将其内容放在字符串中 - 代码日志