Python:在创建RTF文件时使用变量

问题描述 投票:0回答:2

我试图使用带变量的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()
python rtf
2个回答
0
投票

而不是使用“%”将变量添加为字符串,例如:

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

我希望它会对你有所帮助。


1
投票

你误解了%是如何工作的 - 在字符串文字之外使用它,而不是在里面。所以不要使用这个:

"""{\\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,)在文字之外(并且代码突出显示器正确识别它,它是黑色的)

(旁注。使用原始字符串可以避免双重逃避反斜杠)

© www.soinside.com 2019 - 2024. All rights reserved.