How to Write Multiple Lines to a File in Python

How to Specify New Lines in a String to Write Multiple Lines to a File in Python?

How can I indicate a newline in a string in Python, so that I can write multiple lines to a text file? Specifically, how do I use the python print new line functionality to achieve this?

Oh, this is a classic and simple approach that I often use. In Python, you can include the newline character \n directly in your string to specify where the lines should break. Here’s an example:

# Define the string with newlines
text = "This is line 1\nThis is line 2\nThis is line 3"

# Write the string to a file
with open('output.txt', 'w') as file:
    file.write(text)

When you check the output.txt file, you’ll see the content is written across multiple lines like this:

This is line 1
This is line 2
This is line 3

It’s a very straightforward method if you want to write a single string that contains multiple lines. Just remember to include \n wherever a new line is required.

Yes, Yanisleidi’s method is great, but sometimes you might prefer a bit more control over each line as you write it. In that case, the print() function comes in handy, especially with the file parameter. Here’s how:

# Write to file using print with new lines
with open('output.txt', 'w') as file:
    print("This is line 1", file=file)
    print("This is line 2", file=file)
    print("This is line 3", file=file)

By default, print() ends each output with a newline (\n), so you don’t need to include it explicitly in your string. The result in output.txt will be exactly the same:

This is line 1
This is line 2
This is line 3

Using print() is super intuitive and works well when you’re generating lines dynamically. It’s also a great way to leverage python print new line functionality.

Great answers so far! Another approach I like, especially when dealing with multiple lines of text stored as separate strings, is using the writelines() method. Here’s what I mean:

# List of strings
lines = ["This is line 1\n", "This is line 2\n", "This is line 3\n"]

# Write lines to file
with open('output.txt', 'w') as file:
    file.writelines(lines)

Here, each string in the lines list already ends with a newline character (\n), so writelines() simply writes them as-is to the file. Again, the resulting output.txt will look just like before:

This is line 1
This is line 2
This is line 3

This method shines when you already have your text stored in a list format or want to manipulate each line individually before writing. It’s another way to utilize the python print new line concept while working with lists.