- Write rows to csv file line by line in Python
- Write multiple lists to csv file line by line
- Frequently Asked:
- Write list of lists to a csv file line by line
- Summary
- Related posts:
- Share your love
- Leave a Comment Cancel Reply
- Terms of Use
- Disclaimer
- Writing List to a File in Python
- Table of contents
- Steps to Write List to a File in Python
- Example to Write List to a File in Python
- Example to Read List from a File in Python
- Write a list to file without using a loop
- Pickle module to write (serialize) list into a file
- Json module to write list into a JSON file
- writelines() method to write a list of lines to a file
- About Vishal
- Related Tutorial Topics:
- Python Exercises and Quizzes
Write rows to csv file line by line in Python
In this article, we will discuss different ways to write rows to a csv file in Python, and that too line by line.
Table Of Contents
Write multiple lists to csv file line by line
Suppose we have 5 different lists i.e.
heading = ['Name', 'Age', 'City', 'Country'] row1 = ['Ritika', 27, 'Delhi', 'India'] row2 = ['Mark', 28, 'Sydney', 'Australia'] row3 = ['Suse', 29, 'Las Vegas', 'USA'] row4 = ['Shaun', 30, 'London', 'UK']
Now we want to add these lists into a csv file. Where, first list should be added as a header row, and the remaining four lists should be added as normal rows.
To do that we need to use the csv module. Steps are as follows,
Frequently Asked:
- Open the file in write mode, and get a file object.
- Pass the file object to writer() function of csv module, to get the csv_writer object.
- Now call the writerow() function of csv writer object five times with different lists.
- If will add different rows to csv file, line by line.
import csv # A list containing the heading of csv file heading = ['Name', 'Age', 'City', 'Country'] row1 = ['Ritika', 27, 'Delhi', 'India'] row2 = ['Mark', 28, 'Sydney', 'Australia'] row3 = ['Suse', 29, 'Las Vegas', 'USA'] row4 = ['Shaun', 30, 'London', 'UK'] with open('employees.csv', 'w') as fileObj: writerObj = csv.writer(fileObj) writerObj.writerow(heading) writerObj.writerow(row1) writerObj.writerow(row2) writerObj.writerow(row3) writerObj.writerow(row4)
Here, we added one header row, and four normal rows to a csv file.
Write list of lists to a csv file line by line
employees = [['Ritika', 27, 'Delhi', 'India'], ['Mark', 28, 'Sydney', 'Australia'], ['Suse', 29, 'Las Vegas', 'USA'], ['Shaun', 30, 'London', 'UK']]
Now we want to add all sublists in this list into a csv file as different rows. To do that we need to use the csv module. Steps are as follows,
- Open the file in write mode, and get a file object.
- Pass the file object to writer() function of csv module, to get the csv_writer object.
- Pass the first list to the writerow() function of csv writer object. It will add a header row in the csv file.
- Iterate over all the lists in main list, and for each sub list call the writerow() function of csv writer object.
- If will add different rows to csv file, line by line.
import csv # A List of lists employees = [['Ritika', 27, 'Delhi', 'India'], ['Mark', 28, 'Sydney', 'Australia'], ['Suse', 29, 'Las Vegas', 'USA'], ['Shaun', 30, 'London', 'UK']] # A list containing the heading of csv file heading = ['Name', 'Age', 'City', 'Country'] with open('employees2.csv', 'w') as fileObj: writerObj = csv.writer(fileObj) writerObj.writerow(heading) for row in employees: writerObj.writerow(row)
Here, we added one header row, and four normal rows to a csv file.
Summary
We learned about different ways to write rows to a csv file line by line.
Related posts:
Share your love
Leave a Comment Cancel Reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Terms of Use
Disclaimer
Copyright © 2023 thisPointer
To provide the best experiences, we and our partners use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us and our partners to process personal data such as browsing behavior or unique IDs on this site and show (non-) personalized ads. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Click below to consent to the above or make granular choices. Your choices will be applied to this site only. You can change your settings at any time, including withdrawing your consent, by using the toggles on the Cookie Policy, or by clicking on the manage consent button at the bottom of the screen.
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Writing List to a File in Python
In this article, you’ll learn how to write a list to a file in Python.
Often, we require storing a list, dictionary, or any in-memory data structure to persistent storage such as file or database so that we can reuse it whenever needed. For example, after analyzing data, you can store it in a file, and for the next time, that data can be read to use in an application.
There are multiple ways to write a Python list to a file. After reading this article, You’ll learn:
- Write a list to a text file and read it in a Python program when required using a write() and read() method.
- How to use Python’s pickle module to serialize and deserialize a list into a file. Serialize means saving a list object to a file. Deserialize means reading that list back into memory.
- Use of built-in json module to write a list to a json file.
Table of contents
Steps to Write List to a File in Python
Python offers the write() method to write text into a file and the read() method to read a file. The below steps show how to save Python list line by line into a text file.
- Open file in write mode Pass file path and access mode w to the open() function. The access mode opens a file in write mode.
For example, fp= open(r’File_Path’, ‘w’) . - Iterate list using a for loop Use for loop to iterate each item from a list. We iterate the list so that we can write each item of a list into a file.
- Write current item into the file In each loop iteration, we get the current item from the list. Use the write(‘text’) method to write the current item to a file and move to the next iteration. we will repeat this step till the last item of a list.
- Close file after completing the write operation When we complete writing a list to a file, we need to ensure that the file will be closed properly. Use file close() method to close a file.
Example to Write List to a File in Python
# list of names names = ['Jessa', 'Eric', 'Bob'] # open file in write mode with open(r'E:/demos/files_demos/account/sales.txt', 'w') as fp: for item in names: # write each item on a new line fp.write("%s\n" % item) print('Done')
Note: We used the \n in write() method to break the lines to write each item on a new line.
Below content got written in a file.
Example to Read List from a File in Python
Now, Let’s see how to read the same list from a file back into memory.
# empty list to read list from a file names = [] # open file and read the content in a list with open(r'E:\demos\files_demos\account\sales.txt', 'r') as fp: for line in fp: # remove linebreak from a current name # linebreak is the last character of each line x = line[:-1] # add current item to the list names.append(x) # display list print(names)
Write a list to file without using a loop
In this example, we are using a join method of a str class to add a newline after each item of a list and write it to a file.
The join() method will join all items in a list into a string, using a \n character as separator (which will add a new line after each list item).
# list of names names = ['Jessa', 'Eric', 'Bob'] with open(r'E:/demos/files_demos/account/sales.txt', 'w') as fp: fp.write('\n'.join(names))
If you want to convert all items of a list to a string when writing then use the generator expression.
# list of names names = ['Jessa', 'Eric', 'Bob'] with open(r'E:/demos/files_demos/account/sales.txt', 'w') as fp: fp.write("\n".join(str(item) for item in names))
Pickle module to write (serialize) list into a file
Python pickle module is used for serializing and de-serializing a Python object. For example, we can convert any Python objects such as list, dict into a character stream using pickling. This character stream contains all the information necessary to reconstruct the object in the future.
Any object in Python can be pickled and saved in persistent storage such as database and file for later use.
Example: Pickle and write Python list into a file
- First import the pickle module
- To write a list to a binary file, use the access mode ‘b’ to open a file. For writing, it will be wb , and for reading, it will be rb . The file open() function will check if the file already exists and, if not, will create one. If a file already exists, it gets truncated, and new content will be added at the start of a file.
- Next, The pickle’s dump(list, file_object) method converts an in-memory Python object into a bytes string and writes it to a binary file.
# Python program to store list to file using pickle module import pickle # write list to binary file def write_list(a_list): # store list in binary file so 'wb' mode with open('listfile', 'wb') as fp: pickle.dump(names, fp) print('Done writing list into a binary file') # Read list to memory def read_list(): # for reading also binary mode is important with open('sampleList', 'rb') as fp: n_list = pickle.load(fp) return n_list # list of names names = ['Jessa', 'Eric', 'Bob'] write_list(names) r_names = read_list() print('List is', r_names)
Done writing list into a binary file List is ['Jessa', 'Eric', 'Bob']
Json module to write list into a JSON file
We can use it in the following cases.
- Most of the time, when you execute a GET request, you receive a response in JSON format, and you can store JSON response in a file for future use or for an underlying system to use.
- For example, you have data in a list, and you want to encode and store it in a file in the form of JSON.
In this example, we are going to use the Python json module to convert the list into JSON format and write it into a file using a json dump() method.
# Python program to store list to JSON file import json def write_list(a_list): print("Started writing list data into a json file") with open("names.json", "w") as fp: json.dump(a_list, fp) print("Done writing JSON data into .json file") # Read list to memory def read_list(): # for reading also binary mode is important with open('names.json', 'rb') as fp: n_list = json.load(fp) return n_list # assume you have the following list names = ['Jessa', 'Eric', 'Bob'] write_list(names) r_names = read_list() print('List is', r_names)
Started writing list data into a json file Done writing JSON data into .json file List is ['Jessa', 'Eric', 'Bob']
writelines() method to write a list of lines to a file
We can write multiple lines at once using the writelines() method. For example, we can pass a list of strings to add to the file. Use this method when you want to write a list into a file.
# list of names names = ['Jessa', 'Eric', 'Bob'] with open(r'E:/demos/files_demos/account/sales.txt', 'w') as fp: fp.writelines(names)
Here is the output we are getting
cat sales.txt JessaEricBob
As you can see in the output, the file writelines() method doesn’t add any line separators after each list item.
To overcome this limitation, we can use list comprehension to add the new line character after each element in the list and then pass the list to the writelines method.
# list of names names = ['Jessa', 'Eric', 'Bob'] # add '\n' after each item of a list n_names = ["<>\n".format(i) for i in names] with open(r'E:/demos/files_demos/account/sales.txt', 'w') as fp: fp.writelines(n_names)
cat sales.txt Jessa Eric Bob
Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.
About Vishal
I’m Vishal Hule, Founder of PYnative.com. I am a Python developer, and I love to write articles to help students, developers, and learners. Follow me on Twitter
Related Tutorial Topics:
Python Exercises and Quizzes
Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.
- 15+ Topic-specific Exercises and Quizzes
- Each Exercise contains 10 questions
- Each Quiz contains 12-15 MCQ