Rushy Panchal Rushy Panchal - 3 months ago 17
Python Question

How do you save each element of a list in a .txt file, one per line?

I have a list,

pList
. I want to save it to a text (
.txt
) file, so that each element of the list is saved on a new line in the file. How can I do this?

This is what I have:

def save():
import pickle
pList = pickle.load(open('primes.pkl', 'rb'))
with open('primes.txt', 'wt') as output:
output.write(str(pList))
print "File saved."


However, the list is saved in just one line on the file.
I want it so every number (it solely contains integers) is saved on a new line.

Example:

pList=[5, 9, 2, -1, 0]
#Code to save it to file, each object on a new line


Desired Output:

5
9
2
-1
0


How do I go about doing this?

Answer

Simply open your file, join your list with the desired delimiter, and print it out.

outfile = open("file_path", "w")
print >> outfile, "\n".join(str(i) for i in your_list)
outfile.close()

Since the list contains integers, it's needed the conversion. (Thanks for the notification, Ashwini Chaudhary).

No need to create a temporary list, since the generator is iterated by the join method (Thanks, again, Ashwini Chaudhary).