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


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')

以下是输出文件内容:

('m_myname', ',', 'TARGET', ', ', 'mytable')

在上面的内容中,括号也是作为文本文件的一部分编写的,但我不这么认为。你知道如何删除写在文件中的括号吗?

此行:

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

创建一个元组,元组的字符串表示形式包含在括号中。要做你想做的事,使用这个:

writer.write("{0}, TARGET, {1}n".format(map_name, tgt_name))

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

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

tgt_name_str将包含一个元组,因此当您调用str(tgt_name-str(时,它会为您提供带有paranthesign的数据。

要检查这一点,您可以简单地添加打印类型为(tgt_name_str(的语句。

所以要修复它,你可以使用join:

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

或:

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

因为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

Python将隐式地将其转换为元组。这相当于写:

tgt_name_str = (map_name, ",", "TARGET" , ", " , tgt_name)

这就是str(tgt_name_str(所提供的。

您可能需要将值连接起来:

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

,使用'.join或创建自己的格式模板来获得所需的输出。

tgt_name_str = map_name, ",", "TARGET" , ", " , tgt_name创建一个元组,其字符串表示形式用括号括起来。

其他人建议使用''.join([map_name, ",", "TARGET" , ", " , tgt_name]),但您可以使用', '.join([map_name, "TARGET", tgt_name])。联接将把","放在所提供数组的元素之间。请注意,这可能与您想要的输出不同,因为在您的代码中,第一个逗号后面没有空格,但第二个逗号后面有空格。这是故意的吗?

相关内容

  • 没有找到相关文章

最新更新