target.write[line1 \n, line2 \n, line3 \n]
'\n' only make sense inside a string literal. Without the quotes, you don't have string literals.
target.write['line1 \n, line2 \n, line3 \n']
Ok, now everything is a string literal. But you want line1, line2, line3 to not be string literals. You need those as python expressions to refer the variables in question. Basically, you have to put quotes around strings that are actually text like "\n" but not around variables. If you did that, you might have gotten something like:
target.write[line1 '\n' line2 '\n' line3 '\n']
What is
2 2
? It's nothing. You have to specify to python how to combine the two pieces. So you can have 2 + 2
or 2 * 2
but 2 2
doesn't make any sense. In this case, we use add to combine two strings
target.write[line + '\n' + line2 + '\n' + line3 + '\n']
Moving on,
target.write[%r \n, %r \n, %r \n] % [line1, line2, line3]
Again \n
only makes sense inside a string literal. The % operator when used to produce strings takes a string as its left side. So you need all of that formatting detail inside a string.
target.write['%r \n', '%r \n', '%r \n'] % [line1, line2, line3]
But that produce 3 string literals, you only want one. If you did this, write complained because it excepts one string, not 3. So you might have tried something like:
target.write['%r \n%r \n%r \n'] % [line1, line2, line3]
But you want to write the line1, line2, line3 to the file. In this case, you are trying to the formatting after the write has already finished. When python executes this it will run the target.write first leaving:
None % [line1, line2, line3]
Which will do nothing useful. To fix that we need to to put the % []
inside the .write[]
target.write['%r\n%r\n%r\n' % [line1, line2, line3]]
Python has built-in functions for creating, reading, and writing files, among other file operations. Normal text files and binary files are the two basic file types that Python can handle. We'll look at how to write content into text files in Python in this article.
Steps involved writing multiple lines in a text file using Python
Following are the ways to write multiple lines in text file using Python −
- The open[] method must be used to open the file for writing, and the function must be given a file path.
- The following step is to write to file. Several built-in methods, such as write[] and writelines, can be used to do this [].
- The text file has to be closed using the close[] method after the writing process is finished.
Note − All the examples mentioned below follows the above mentioned steps.
Open[] Function
If opening the file is possible, the open[] function does it and returns the matching file object.
There are numerous parameters for the open[] function. Let's examine the parameters required for writing to a text file. It returns a file object after opening the file in the chosen mode.
Syntax
file = open['filepath','mode']
Where,
- filepath − It represents the path of the file.
- mode − It holds numerous optional parameters. It is a string that indicates the opening mode for the file.
Using writelines[] Function
This function writes several string lines to a text file simultaneously. An iterable object, such as a list, set, tuple, etc., can be sent to the writelines[] method.
Syntax
file.writelines[list]
Where list is the collection of texts or bytes that will be added. It could be a string collection, tuple, list, etc.
Example - 1
Following is an example to write multiple lines in a file using Python −
with open['file.txt', 'a'] as file: l1 = "Welcome to TutorialsPoint\n" l2 = "Write multiple lines \n" l3 = "Done successfully\n" l4 = "Thank You!" file.writelines[[l1, l2, l3, l4]]
Output
As an output we get a text file named as “file” with the following lines written in it −
Welcome to TutorialsPoint Write multiple lines Done successfully Thank You!
Example - 2
Following is an alternate example to write multiple lines in a file using Python −
with open["file.txt", "w"] as file: lines = ["Welcome to TutorialsPoint\n", "Write multiple lines \n", "Done successfully\n" ] file.writelines[lines] file.close[]
Output
As an output, we get a text file named as “file” with the following lines written in it −
Welcome to TutorialsPoint Write multiple lines Done successfully
Example - 3: Using while loop
Following is an example to write multiple lines in a file using while loop −
def write[]: file=open["file.txt",'w'] while True: l=input["Welcome to TutorialsPoint:"] file.write[l] next_line=input["The next line is printed successfully:"] if next_line=='N': break file.close[] write[]
Output
Following is an output of the above code −
Welcome to TutorialsPoint: The next line is printed successfully:
Using the writelines[] Function
If you want to add more lines to an existing text file, you must first open it in append mode and then use the writelines[] function, as seen below.
Example
Following is an example to append multiple lines in a text file −
with open["file.txt", "a"] as f: lines = ["Adding lines\n", "writing into it \n", "written successfully\n" ] f.writelines[lines] f.close[]
Output
We get multiple lines appended in the already existing file −
Welcome to TutorialsPoint Write multiple lines Done successfully Adding lines writing into it written successfully
Updated on 18-Aug-2022 06:58:58
- Related Questions & Answers
- How to write a single line in text file using Python?
- Counting number of lines in text file using java
- How to write a text file in Selenium with python?
- Python - Write multiple files data to master file
- How to write text and output it as a text file using R?
- How to display multiple lines of text in Tkinter Label?
- How to count the number of lines in a text file using Java?
- How to write the plot title in multiple lines using plot function in R?
- Java program to delete duplicate lines in text file
- How can multiple lines be visualized using Bokeh Python?
- How do we use file.readlines[] to read multiple lines using Python?
- How to write binary data to a file using Python?
- How to match pattern over multiple lines in Python?
- Number of Lines To Write String in Python
- How to create multiple regression lines using ggplot2 in R?