0

I have to create the CVS file from the list, here is the code

data_list = ['1', '2' , '3', '4']
        with open("myfile.csv", "w", newline="") as output_file:
            for each_line in data_list:
                output_file.write(each_line + "\n")

I can understand "\n" breaks the line but when I open the file i see last line is EMPTY. this is how content looks like

1
2
3
4
  # empty line

Is there any way i can remove last empty line?

found the way to fix this.. but wanted to check if this is the right way

        data_list = ['1', '2' , '3', '4']
        with open( "mycvs.csv", "w") as output_file:
            counter = 0
            for each_line in data_list:
                if counter < len(data_list) -1:
                    output_file.write(each_line + "\n")
                else:
                    output_file.write(each_line)
                counter += 1
user1591156
  • 1,945
  • 4
  • 18
  • 31

2 Answers2

2

Loop to the second last element of the list and do the last element without the "\n"

with open("myfile.csv", "w", newline="") as output_file:
    for each_line in data_list[:-1]:
        output_file.write(each_line + "\n")
    output_file.write(data_list[-1])
0

You can try this:

with open("myfile.csv", "w") as output_file:
    length = len(data_list)
    for i in range(length-1):
        output_file.write(data_list[i]+"\n")
    output_file.write(data_list[length-1])

The output does not contain a new line in this case.

But as mentioned in this post, you shouldn't leave a file without a terminating \n in the last line.

whiplash
  • 695
  • 5
  • 20