Python-从文本文件中读取逗号分隔的值,然后将结果输出到文本fi

2024-05-12 23:56:45 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我需要创建一个程序来添加从用逗号分隔的文本文件中读取的数字。工业工程

文件.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

我想要的是它将遍历文本文件中的每一行,这将是一个简单的循环。

但是,我也不知道如何将结果输出到另一个文本文件。 i、 e.答案.txt

6

15

24

非常感谢。


Tags: 文件答案代码程序txt数字工程sum
3条回答

欢迎来到StackOverflow!

你的想法是对的,让我们先打开一些文件。

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"

我们必须在“currentline”数组中的每个元素周围包装int函数。否则,我们将连接字符串,而不是添加整数!

之后,我们添加回车“\n”,以便更清楚地理解“answers.txt”。

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)

对于此任务,您可能不想直接使用程序中的文件,而是使用标准输入(Python 2中的input()raw_input())和标准输出(仅print())。

然后在调用脚本期间指定输入和输出文件名:

python script.py < file.txt > answer.txt

有了这个方案,您可以拥有这样的程序(Python2.7):

while (True):
    try:
        x, y, z = [int(val) for val in raw_input().split(',')]
        print (x + y + z)
    except EOFError:
        pass

你可以用更少的行来完成这项工作,但我希望你觉得这个解决方案可读性强,易于理解:

out = file('answers.txt', 'w')
for line in file('file.txt', 'r'):
    s = 0
    for num in line.strip().split(','):
        s += int(num)
    out.write("%d\n" % s)

相关问题 更多 >