在为需要处理的输出运行函数时,我正在创建文件,但是除了所需的输出外,我还得到了<_io.TextIOWrapper name ='xyz.txt'mode ='w'encoding =文本文件的每一行也输出'UTF-8'>。
示例代码:
def stimcount():
with open('results.txt', 'w') as f:
for rel_node in root.findall("emospan:CharacterRelation",ns):
if rel_node.attrib['Relation']=="Stimulus":
source = rel_node.attrib['Governor']
target = rel_node.attrib['Dependent']
for span_node in root.findall("emospan:CharacterEmotion",ns):
if span_node.attrib[my_id]==source:
print(span_node.attrib['Emotion'])
if span_node.attrib[my_id]==target:
print(span_node.attrib)
print(span_node.attrib, f, file=f)
我应该添加些什么来防止这种情况发生? 我尝试在open命令中添加(...,encoding ='utf-8'),但没有效果。
谢谢!
答案 0 :(得分:0)
出现问题的原因在此行:
print(span_node.attrib, f, file=f)
此对print
的调用中的第二个参数(仅f
)意味着您将在输出中包含要写入的文件对象的字符串表示形式。
只需将此行更改为:
print(span_node.attrib, file=f)
解决您的问题。