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

Python: Using a variable when creating an RTF file

我正在尝试使用 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,) 在文字之外(代码高亮器正确识别了它,它是黑色的)

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