string - 如何将字符串更改为变量
问题描述
我想将一些数据写入文件。我将文件名保存为variable
. 我想使用%
模式替换variable
文本,但它给出了一个错误:
IndentationError: unindent 不匹配任何外部缩进级别
writeafile = open('N:\myfile\%s.txt' , "a") % (variable)
解决方案
假设我们在这里讨论的是 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")
推荐阅读
- php - Foreach 循环中的 Codeigniter 和解密未按预期工作
- php - PHP:独立于平台的shebang放在PHP文件的顶部以随处使用PHP CLI执行它们?
- c++ - 将 HEX 转换为 DEC
- google-account - 为域创建 Google 帐户时出现问题
- android - 显示状态栏android
- java - 如何通过 Class.forName(...) 获取数组的类?
- javascript - 从服务订阅数据时,类型 void 上不存在错误属性订阅?
- javascript - Angular *ngFor在循环抛出对象时使用PIPE不起作用
- flutter - Flutter & Background fetch - 如何处理一个简单的例子?
- html - 在 nextjs 中将背景图像设置为 div 不起作用