首页 > 解决方案 > 如何将字符串更改为变量

问题描述

我想将一些数据写入文件。我将文件名保存为variable. 我想使用%模式替换variable文本,但它给出了一个错误:

IndentationError: unindent 不匹配任何外部缩进级别

writeafile = open('N:\myfile\%s.txt' , "a") % (variable)

标签: stringvariablesreplace

解决方案


假设我们在这里讨论的是 Python,您应该移到字符串variable旁边以获得正确的语法,如下所示:
'N:\\myfile\\%s.txt'
writeafile = open("N:\\myfile\\%s.txt" % variable, "a")

但是,Pydocs 不建议使用这种格式的格式:

此处描述的格式化操作表现出各种怪癖,这些怪癖会导致许多常见错误(例如无法正确显示元组和字典)。使用较新的格式化字符串文字、str.format() 接口或模板字符串可能有助于避免这些错误。这些替代方案中的每一个都提供了它们自己的权衡和简单性、灵活性和/或可扩展性的好处。 资源

所以,我建议使用自 3.6 以来在 Python 中可用的 f-strings。double\\在这里是有意的,否则 Python 会将其视为转义字符,您将得到不希望的结果。
writeafile = open(f"N:\\myfile\\{variable}.txt", "a")

或者,您也可以使用str.format()
writeafile = open("N:\\myfile\\{name}.txt".format(name=variable), "a")


推荐阅读