我使用for循环创建了一系列* .txt文件。但是现在我想在列表中写入文件名。但是只有最后一个文件名被打印在列表中,而之前的文件名被删除。
for i in range(3):
i += 0
new_file = str(i) + ".txt"
file_list = []
file_list.append(new_file)
with open(new_file, "w") as outfile:
print("File created...")
print(file_list)
我得到的输出是 ['2.txt']
我需要输出为 ['0.txt','1.txt','2.txt']
答案 0 :(得分:2)
您将在循环的每次迭代中重新初始化file_list
。将该部分移到外部,如下所示:
file_list = []
for i in range(3):
i += 0
new_file = str(i) + ".txt"
file_list.append(new_file)
with open(new_file, "w") as outfile:
print("File created...")
print(file_list)
答案 1 :(得分:1)
您将在每次迭代时重新创建列表。 您应该在循环之前定义列表:
file_list = []
for i in range(3):
i += 0
new_file = str(i) + ".txt"
file_list.append(new_file)
with open(new_file, "w") as outfile:
print("File created...")
print(file_list)
答案 2 :(得分:0)
在代码的第四行中,您将file_list设置为一个空列表。由于这在您的循环中,因此每次循环迭代时都会发生!如果声明了file_list变量并将其设置为for循环之前的起始空列表,则应该获得预期的结果。