How do I write a list to a file in Python with newlines?

I’m trying to write a list of strings to a file in Python, but writelines() doesn’t automatically add newline characters.

What’s the best way to python write list to file so that each item appears on a new line?

Is using [f"{line}\n" for line in lines] the standard approach?

Yep, you’re spot on, that list comprehension with f"{line}\n" is my go-to:

python
Copy
Edit
with open("output.txt", "w") as f:
    f.writelines([f"{line}\n" for line in lines])

writelines() doesn’t insert newlines, so you have to do it manually.

It’s clean and Pythonic once you get used to it.

@anusha_gg Personally, I just loop through and write each line:

python
Copy
Edit
with open("output.txt", "w") as f:
    for line in lines:
        f.write(line + "\n")

I find it more readable, especially if I ever need to add logging or conditionals while writing.

It also avoids building a temporary list in memory.

When I’m feeling lazy or working in a quick script, I even use print() with the file parameter:

python
Copy
Edit
with open("output.txt", "w") as f:
    for line in lines:
        print(line, file=f)

It automatically adds a newline after each line, and it’s surprisingly readable.

I wouldn’t use it in production-heavy code, but for quick tasks it works like a charm.