1

I am trying to write a Python script to create a file of multiple rows with a title and the values stored in columns. I am very new to Python so there might be a stupid mistake somewhere but I have tried many things, looked on the Internet but I cannot find how to solve my isssue...

import csv
A=[1,2]
B=[1.5,0.5]
C=[2.5,3]
with open('test.txt', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f, delimiter='\t')
    writer.writerows(zip("TestA","TestB","TestC"))
    writer.writerows(zip(A,B,C))

I am expecting something like :

TestA     TestB     TestC
1    1.5    2.5
2    0.5    3

But I get :

T     T     T
e     e     e
s     s     s
t     t     t
A     B     C
1     1.5   2.5
2     0.5   3

Does anyone have a idea to get what I want please ? Thank you !

Nico
  • 13
  • 3

1 Answers1

0

There is no way to write horizontally using writer.writerows() without having to do some complex list transposing. Instead why not use File write() like so:

A=[1,2]
B=[1.5,0.5]
C=[2.5,3]
with open('test.txt', 'w', newline='', encoding='utf-8') as f:
    f.write('TestA\tTestB\tTestC\n')
    for i in range(2):
        f.write(str(A[i]) + "\t")
        f.write(str(B[i]) + "\t")
        f.write(str(C[i]) + "\t\n")

which produces:

TestA   TestB   TestC
1   1.5 2.5 
2   0.5 3   

Here's another link that should be helpful: Correct way to write line to file?

flyingfishcattle
  • 1,817
  • 3
  • 14
  • 25