我试图使用带变量的python自动创建RTF文件。我可以使用下面的代码创建它,但我无法弄清楚如何在file.write命令中使用变量“name”。
我试过读这个http://www.pindari.com/rtf1.html但找不到任何有用的东西。希望有人能指出我正确的方向。谢谢!
test = 'file.rtf'
name = "Chris"
file = open(test,'w')
file.write("""{\\rtf1\\ansi\\deff0
{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}
\\b Name: "%s" % (name,) \\b0\line
}""")
file.close()
而不是使用“%”将变量添加为字符串,例如:
test = 'file.rtf'
name = "Chris"
file = open(test,'w')
file.write("""{\\rtf1\\ansi\\deff0
{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}
\\b Name: """ + str(name) + """ \\b0\line
}""")
file.close()
我希望它会对你有所帮助。
你误解了%
是如何工作的 - 在字符串文字之外使用它,而不是在里面。所以不要使用这个:
"""{\\rtf1\\ansi\\deff0
{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}
\\b Name: "%s" % (name,) \\b0\line
}"""
(因为% (name,)
部分仍然在字符串文字内)
而是使用这个:
"""{\\rtf1\\ansi\\deff0
{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}
\\b Name: %s \\b0\line
}""" % (name,)
请注意,% (name,)
在文字之外(并且代码突出显示器正确识别它,它是黑色的)
(旁注。使用原始字符串可以避免双重逃避反斜杠)