如何在特定列中添加值并使用python在单独的文件中打印?

时间:2014-12-03 20:20:38

标签: python text-files

我有一个包含5列的文件,例如:

  

输入文件:
  1 1 1 1 1   1 1 1 0 1
  1 0 0 1 1

我想要打印第1列的输出文件,第2,第3和第4列值应该加在一起,第5列再次打印。

  

输出文件:
  1 3 1
  1 2 1
  1 1 1

3 个答案:

答案 0 :(得分:2)

尝试这样:

f = open('input_file')
for x in f:
    x = x.split()
    print("{} {} {}".format(x[0],(sum(map(int,x[1:4]))),x[4]))
f.close()   

输出:

1 3 1
1 2 1
1 1 1

写入文件:

f = open('input_file')
f1 = open('output_file')
for x in f:
    x = x.split()
    f1.write("{} {} {}".format(x[0],(sum(map(int,x[1:4]))),x[4])))
f.close()
f1.close()

答案 1 :(得分:0)

在我看来,您在以可行的格式获取数据时遇到了一些麻烦。我建议阅读python文档:https://docs.python.org/2/tutorial/inputoutput.html用于输入和输出文件,https://docs.python.org/3/library/csv.html用于非常有用的csv模块。我已经整理了一个易于理解的代码段,并将您的数据放入一个可行的数组中。您可以轻松编辑它,使数据更容易找到更合适的结构。

import csv
data = []
with open('data.txt') as csvfile:
    content = csv.reader(csvfile , delimiter=' ')
    for row in content:
        data += row

for i in range(len(data)):
    data[i] = int(data[i])


print data
>>> [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1]

从这里,你应该能够轻松地操纵数据来做你想做的事情。我建议阅读有关写入文件的文档,然后回来,向我们展示您的代码,如果遇到麻烦,请查看您出错的地方。

答案 2 :(得分:0)

试试这个

输入:

1 1 1 1 1
1 1 1 0 1
1 0 0 1 1

程序:

fp1=open("file.txt","r")
for i in fp1.readlines():
    line = i[:-1].split(' ')
    line = map(int,line)        
    x = reduce(lambda x, y: x+y ,line[1:-1])
    print line[0],x,line[4]

输出:

1 3 1
1 2 1
1 1 1