我正在嘗試使用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