为什么在向文件中写入文本时要使用括号?

2024-10-01 13:39:57 发布

您现在位置:Python中文网/ 问答频道 /正文

for node in tree.getiterator('TARGET'):
    tgt_name = node.attrib.get('NAME')
    print map_name, ",", "TARGET" , ", " , tgt_name
    tgt_name_str = map_name, ",", "TARGET" , ", " , tgt_name
    writer.writelines (str(tgt_name_str))
    writer.writelines('\n')

以下是输出文件内容:

^{pr2}$

在上面的括号也是作为文本文件的一部分写入的,但我没有这样做。你知道如何删除写入文件的括号吗?在


Tags: 文件nameinnodetreemaptargetfor
3条回答

这条线:

tgt_name_str = map_name, ",", "TARGET" , ", " , tgt_name

创建一个元组,元组的字符串表示用括号括起来。要想做什么就用这个:

^{pr2}$

因为tgt_name_str = map_name, ",", "TARGET" , ", " , tgt_name是一个元组。在

替换为:

tgt_name_str = ''.join([map_name, ",", "TARGET" , ", " , tgt_name])
# or
tgt_name_str = map_name + "," + "TARGET" + ", " + tgt_name

这是因为当您执行下一行时:

tgt_name_str = map_name, ",", "TARGET" , ", " , tgt_name

tgt_name_str将包含一个元组,因此当您调用str(tgt_name_str)时,它会给您带paranthesis的数据。在

要检查这一点,您只需添加print type(tgt_name_str)语句即可。在

因此,要修复它,可以使用join:

^{pr2}$

或者:

for node in tree.getiterator('TARGET'):
    tgt_name = node.attrib.get('NAME')
    writer.writelines (''.join([map_name, ",", "TARGET" , ", " , tgt_name, '\n']))

相关问题 更多 >