我需要创建一个程序来添加从以逗号分隔的文本文件中读取的数字。即
在 file.txt
中:
1,2,3
4,5,6
7,8,9
到目前为止,我有简单的代码:
x = 1
y = 2
z = 3
sum = x + y + z
print(sum)
我不确定如何将文本文件中的每个数字分配给 x
、y
和 z
。
我想要的是它将遍历文本文件中的每一行,这将使用一个简单的循环。
但是我也不知道如何将结果输出到另一个文本文件。
即 answers.txt
:
6
15
24
你的想法是正确的,让我们从打开一些文件开始:
with open("text.txt", "r") as filestream:
with open("answers.txt", "w") as filestreamtwo:
在这里,我们打开了两个文件流 - “text.txt”和“answers.txt”。
由于我们使用了 with
,这些文件流将在它们下方缩进的代码完成运行后自动关闭。
现在,让我们逐行浏览“text.txt”文件:
for line in filestream:
这将运行一个 for 循环并在文件末尾结束。
接下来,我们需要将输入文本更改为我们可以使用的内容,例如数组:
currentline = line.split(",")
现在,currentline
包含“text.txt”第一行中列出的所有整数。
让我们总结这些整数:
total = str(int(currentline[0]) + int(currentline[1]) + int(currentline [2])) + "\n"
我们必须用 int
函数将每个元素包装在 currentline
中。否则,我们将连接字符串而不是添加整数!
之后,为了让“answers.txt”更清晰易懂,我们添加了回车“\n”
。
filestreamtwo.write(total)
现在,我们正在写入文件“answers.txt”……就是这样!大功告成!
这里是代码:
with open("test.txt", "r") as filestream:
with open("answers.txt", "w") as filestreamtwo:
for line in filestream:
currentline = line.split(",")
total = str(int(currentline[0]) + int(currentline[1]) + int(currentline [2])) + "\n"
filestreamtwo.write(total)