 Now, one of the most important files you are going to be dealing with when you're using Python scripts is something known as a CSV, a comma separated value file, you know, big fancy five dollar word structure text files. But the entire idea is if we remember the idea to something like a table, right? Well, all of these happen to be rows. And these happen to be columns. If I wanted to represent this as a list, I would take each one of these values and separate it via commas, not a semicolon comma. And then on the new line, I would put you know, square brackets in another line. But once again, if we think about this from sort of the, I'm dealing with files that are data that may be coming in from outside of my program, in the case of file, it is more commonly going to be stored as a CSV file. And the entire idea here is now that we just take that same kind of concept, each value is going to just sit on a line. And then it's going to be separated by comma. Nothing terribly outlandishly crazy going on this and we can see this in action. So if we were to jump to our data folder that I've been referencing. And we see Oh, well, we've got a few CSV files in here. Let's take a look at the iris CSV. You'll see exactly that there's sort of this first row where we're just giving something known as a header column headers indicating what each one of the columns represents. So the first values are the sepal links, the sepal widths, the pedal links, the pedal widths, and then the species. And you can see that that's exactly what we're seeing in each one of these. So 5.1 is the sepal length, 3.5, 4.1, 0.2, Satosa. So we're just storing things in a structured way. So with that in place, there are a few things that we can deal with. So one of those is the fact that these are separated via something known as a delimiter. Now that delimiter could be anything it doesn't have to be the comma because what happens if you happen to have a value what happens if I want Boston for example to I don't know why you would want this but what if I wanted it to be Boston well in that case you know I don't want that to be two separate columns. So you could use a different delimiter as it so in this case I could use the pound sign and hashtag for all the cool kids out there. But the entire idea would be that this is again just trying to represent that this is the separation of data. So with that in mind, can we process CSV files? Yes, we can. There happens to be a way to process them. So this is sort of the without magic sort of way you can see you can go in and open the file as is just like we've done before traverses it split it up and instead of printing you could store that to an array and then you're done and you close out of it. Okay, well, that's one way to do it. But there also happens to be something known as a CSV library or CSV module that will allow us to process specifically CSV files. So how do we handle this? Well, the same kind of thing just like we've seen in the past with most libraries, we would import that CSV library into our program just as is. And in our case, I'm going to go ahead and use something called file path and I'm going to reference that CSV file the iris CSV file. And so I've loaded that in a memory. Now, very similar, I'm going to open this up and process it. So again, with open file path as five, that part hasn't changed, we are still needing to open the file. But now we need to process it. And specifically, we need to process it via the CSV library. So to do this, I typically like to use the term reader, the variable reader for this because I'm using the reading ability of the CSV library. And so what do I mean by that? Well, we go CSV. And just like when we are dealing with something like the math library or the random library, you know, you did random dot and then your function or math dot and your function CSV dot reader. And in this case, we would pass in the file object, not the string, but the file object that we're working off of. And so with this in mind, I now have a way to process that particular file using this library. And so in this case, now that it's loaded into memory, it's processed, I can traverse it just like any other file. So for line in leader, let me just print a line. And then I'll break. And what I'm doing here is just showing off sort of what's the first line going to look like. And you can see, oh, what do you know, it's already processed it as a string or sorry, as a list, it's already taken all of those commas and separated them as is okay, nice. If I were to continue on so let's say for example, instead of printing line I do let me print line at two. Now what I'm saying is print the second the element at the two index so 012 print the pedal length values and I take this I run it. And that's exactly what we see I see every single row. And it's respective value. Now if I do add in just a little bit, type for that line to it is still processed as a string, it's not going to magically turn this into a floating point number. But we happen to have variables or videos that show us how to convert these into floats. Or if you happen to know that this particular column is always going to be a floating point number after the first line, you can do a little fancy processing. What I would do is I would come in first line equals true. And this is to indicate that I have not processed my first line yet. And again, this is because this is strings I don't want my my code to crash off of this but I'm using a conditional statement. So if first line first line is going to equal false else. Now specifically what this is doing is if I've hit the first line, right, don't do anything else just process, you know, just skip over it effectively, then print. Well, let me val is going to equal float at line to print val type val. And so once again, this should skip over to the first line, I'm never going to see pedal dot length unless I want to do something on that first line, convert after the first line convert the value at line to to a floating point number and then just print it out. And that's exactly what we see.