首页 > 解决方案 > 在 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 新手,所以任何帮助都意义重大!先感谢您!

标签: pythonfilefor-loopsyntax-errornested-loops

解决方案


你忘记了一个+标志。这是字符串格式化操作更好的原因之一:忘记字符的地方更少。文件名模板是单个字符串,后面有参数,而不是尝试在长表达式中交替固定和可变部分。

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

推荐阅读