Locked learning resources

Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Locked learning resources

This lesson is for members only. Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Write Lists as CSV Records (Solution)

00:00 The exercise instructions provide a code snippet that we can cut and paste into our solution. It defines a variable named numbers, which is assigned a list of elements, and each element is a nested list of integers.

00:16 Now I need to open a file for writing where this data will be saved. So I’ll import the pathlib.Path object, and I can specify the path to the CSV file in my home directory, which should be named numbers.csv.

00:34 As usual, I’ll use the with statement to open the file represented by that path, and I’ll set the mode to writing, using UTF-8 as the character encoding.

00:46 Now, unlike before when we were working with generic text files, we now want to write a more specific kind of text file—that is, one using the CSV format.

00:55 While writing and reading such files by hand may seem straightforward, there are actually surprisingly many edge cases and CSV dialects, which is why it’s almost never a good idea.

01:07 Fortunately, Python comes with the csv module in the standard library, which can handle the quirks of the CSV format. So that’s what I’ll use.

01:16 I need to add another import statement at the top of the file. In this case, I’m importing the entire module instead of a specific symbol from it, so I’ll have to prefix whatever object I want to use with the module name, and now I can create a new CSV writer object to wrap the file with.

01:37 Before moving further, there’s one more thing I should address. Whenever using the csv module, it’s considered best practice to disable Python’s universal newline translation mechanism by setting the file’s newline parameter to an empty string.

01:53 This ensures that newlines that might appear as values in the CSV file are handled correctly in a portable way across different operating systems. This might not be necessary in this particular case, but it helps to cultivate good programming habits.

02:10 The writer object provides convenient methods such as .writerows(), which takes a Python list as an argument and converts its elements into CSV-formatted rows before writing them to the provided file.

02:24 Here I pass the numbers variable as an argument because that’s what we want to be written to the file.

02:31 Let’s save the solution as exercise_02_01 and run it.

02:40 Nothing’s happened in the console, but we can open the file that should have been created by our little script. The name of the file was numbers.csv.

02:50 Perfect. We just created a CSV file, and it seems that all data was written correctly.

02:57 Next, you’ll practice reading such data from a file, which is equally important.

Become a Member to join the conversation.