python - 在 Python 中使用嵌套的 for 循环生成输出文件,并得到无效的语法错误?
问题描述
我正在尝试生成一些文件,这些文件将包含来自 for 循环的数据,现在,我正在生成 20 个具有以下结构的 for 循环的文件:
for t in range(1, 20, 1):
file = open("data_" + str(t) + ".txt", "w+")
for E in range(1, 20, 1):
stringData = str(t * E)
file = open("data_" + str(t) ".txt", "a")
file.write(stringData + '\n')
file.close()
但是,我收到以下语法错误:
File "<ipython-input-18-0fa0e5a273c1>", line 52
file = open("data_" + str(t) ".txt", "a")
^
SyntaxError: invalid syntax
有谁知道具体的错误是什么?我认为这是因为我在某处遗漏了括号,但我不太确定。我是 Python 新手,所以任何帮助都意义重大!先感谢您!
解决方案
你忘记了一个+
标志。这是字符串格式化操作更好的原因之一:忘记字符的地方更少。文件名模板是单个字符串,后面有参数,而不是尝试在长表达式中交替固定和可变部分。
open("data_%d.txt" % t, "w+") # Pretty much every version of Python to date
或者
open("data_{}.txt".format(t), "w+") # Python 2.6 or later
Python 3.7 引入了一种混合方法f-string literals,它直接在字符串文字中组合可执行表达式(类似于 shell 和 Perl 中可用的字符串插值)。
open(f"data_{t}.txt", "w+") # Python 3.7 or later
推荐阅读
- javascript - 无法在移动设备上隐藏子菜单并在点击时显示
- javascript - React:为什么在 setState 中使用数组表示法与对象表示法?
- php - twif到tpl opencart 2.3.0.2
- mysql - mysql server 5.5版无法启动
- ios - Swift 4.2 - 获取用于桥接 FacebookCore 中缺少的头文件的编译器错误。有任何想法吗?
- cmake - 为什么我的 cmake 函数没有为参数赋值?
- c# - 如何使事件跨越多种形式
- r - rstan 将数据存储为矩阵或 data.frame 更快地拟合模型吗?
- java - 无法将文本从外部片段放入 textview?
- vba - SendUsingAccount SendAs 权限但未在索引中找到