Wednesday 29 August 2018

Writing a list to a file with Python



Is this the cleanest way to write a list to a file, since writelines() doesn't insert newline characters?



file.writelines(["%s\n" % item  for item in list])


It seems like there would be a standard way...


Answer




You can use a loop:



with open('your_file.txt', 'w') as f:
for item in my_list:
f.write("%s\n" % item)


In Python 2, you can also use



with open('your_file.txt', 'w') as f:

for item in my_list:
print >> f, item


If you're keen on a single function call, at least remove the square brackets [], so that the strings to be printed get made one at a time (a genexp rather than a listcomp) -- no reason to take up all the memory required to materialize the whole list of strings.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...