如何从文件中删除<_io.TextIOWrapper name ='xyz.txt'mode ='w'encoding ='UTF-8'>?

时间:2018-07-23 14:31:49

标签: python python-3.x file

在为需要处理的输出运行函数时,我正在创建文件,但是除了所需的输出外,我还得到了<_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'),但没有效果。

谢谢!

1 个答案:

答案 0 :(得分:0)

出现问题的原因在此行:

print(span_node.attrib, f, file=f)

此对print的调用中的第二个参数(仅f)意味着您将在输出中包含要写入的文件对象的字符串表示形式。

只需将此行更改为:

print(span_node.attrib, file=f)

解决您的问题。