我正在尝试使用FileInput替换文件中的某一行,如果该行中有某个字。它基本上附加到一个文件。它运行但给我一个TypeError,我试图找出错误的位置。运行函数时出现类型错误
tagname = 'somestring'
def add_tags():
for line in fileinput.FileInput('/tmp/hosttags.mk',inplace=1):
if 'end_tags' in line:
line = line.replace(""" ('end_tags',""", """('%s',
u'/%s',
[('%s', u'%s tag', [])]),
('end_tags',
u'testing/end_tags_start',
[('end_tag_id', u'end_tag_description', [])])]""") % (tagname, tagname, tagname, tagname)
print line.strip()
错误:文件的
Traceback (most recent call last):
File "./tag_update.py", line 57, in <module>
checkmk_srv_tag_update()
File "./tag_update.py", line 54, in checkmk_srv_tag_update
add_tags()
File "./tag_update.py", line 45, in add_tags
[('end_tag_id', u'end_tag_description', [])])]""") % (tagname, tagname, tagname, tagname)
TypeError: not all arguments converted during string formatting
最终的结果被更新:
('house',
u'/house',
[('house', u'house tag', [])]),
('somestring',
u'/somestring',
[('somestring', u'somestring tag', [])]),
('end_tags',
u'testing/end_tags_start',
[('end_tag_id', u'end_tag_description', [])])]
感谢
如果行包含'end_tags'而不是'(“end_tags”会发生什么,' –
它的行 – DRO