CSV interpretation
Comma-separated values (comma-separated values,csv, sometimes referred to as character-delimited values, because delimited characters can also be not commas), whose files store tabular data (numbers and text) in plain text. Plain text means that the file is a sequence of characters and does not contain data that must be interpreted like a binary number. A CSV file consists of any number of records separated by a newline character, each record consists of a field, and the delimiter between the fields is another character or string, most commonly a comma or tab. Typically, all records have exactly the same sequence of fields. are usually plain text files. It is recommended to use WordPad or Notepad (NOTE) to open, and then save a new file to open with Excel, is also one of the methods.
Read CSV file
Reader (filename), you can use the reader () method to create an object that reads data from a CSV file.
Official documentation: Csv.reader
(csvfile, dialect= ' Excel ', **fmtparams)//csvfile is any object that can be iterated ( if the file object is newline= ' To open it ), dialect translates into dialects for custom parsers to parse data, **fmtparams for parser parameters
When a file is read, each line of input data is parsed and a list is returned
Create a CSV file to write the following data, Python reads:
>>> with open ('Test.csv','R', newline="'As csvfile: ... reader=Csv.reader (csvfile)>>> forIinchReader: ...Print(i) ... ['name','Tel','Address',' Age']['Zhang','15111111111','Beijing',' -']['Li','13822222222','Wuhan',' -']['Liu','15933333333','Hainan',' -']
Write a CSV file
Writer (filename), using the writer method to write data
Csv.writer (csvfile, dialect= ' Excel ', **fmtparams)//parameters are exactly the same as read
Write a code to test
ImportCsvwith Open ('Test1.csv','W', newline="') as F:writer=Csv.writer (f) writer.writerow ('name','Tel','Address',' Age')) Writer.writerow ('Zhang',15111111111,'Beijing', -)) Writer.writerow ('Li',13822222222,'Wuhan', -)) Writer.writerow ('Liu',15933333333,'Hainan', -) ) with open ('Test1.csv','R', newline="') as F:reader=Csv.reader (f) forIinchReader:Print(i)
Results:
[' Name ', ' Tel ', ' address ', ' age ']
[' Zhang ', ' 15111111111 ', ' Beijing ', ' 33 ']
[' Li ', ' 13822222222 ', ' Wuhan ', ' 28 ']
[' Liu ', ' 15933333333 ', ' Hainan ', ' 25 ']
The reason why the default quotation mark pattern is different from the result of the discovery
Use quoting to set quote mode when writing files
The default is: writer = Csv.writer (f,quoting=csv. Quote_nonnumeric)//non-numeric plus quotes
Can be changed to:
Quote_all: All fields quoted
Quote_minimal: Special Field Quotes
Quote_none: No Quotes
Dialect
For custom parsers, you do not have to pass individual parameters into the reader and the writer, which can be composed together to form a dialect object
Standard library includes two dialects: Excel and Excel-tabs, default to Excel
CSV dialect parameters:
Property |
Default value |
Meaning |
Delimiter |
, |
Field delimiter |
Doublequote |
True |
Controls whether the QuoteChar instance is paired |
Escapechar |
None |
Indicates an escape sequence |
LineTerminator |
\ r \ n |
The writer uses this end line |
QuoteChar |
" |
Used to surround fields with special characters |
Quoting |
Quote_minimal |
Control quote Behavior |
Skipinitialspace |
False |
Whitespace before character delimiter is ignored |
Convert Rows to Dictionaries
Dictreader and Dictwriter classes convert rows to dictionaries rather than rows
Official document: Class CSV. Dictreader(CSVFile, Fieldnames=none, Restkey=none, Restval=none, dialect= ' Excel ', *args, **kwds)
Parameter description:
FieldNames: Dictionary key, default to first row of data
Restkey: The remaining key is given by Restkey if the number of keys in the Read row field is extra
Restkey: If the Read row field is less than the number of keys given, the remaining value is given by restval
For example the above Test1.csv file
With open ('test1.csv','r', newline=') as F: = csv. Dictreader (f) for in Reader: print(i)
Results:
{' Address ': ' Beijing ', ' name ': ' Zhang ', ' age ': ' $ ', ' tel ': ' 15111111111 '}
{' Address ': ' Wuhan ', ' name ': ' Li ', ' age ': ' + ', ' tel ': ' 13822222222 '}
{' Address ': ' Hainan ', ' name ': ' Liu ', ' age ': ' + ', ' tel ': ' 15933333333 '}
Dictwriter similar to Dictreader, providing a list as a key
writer = csv. Dictwriter (F,list)
Official document: Class CSV. Dictwriter
(CSVFile, FieldNames, restval= ", extrasaction= ' raise ', dialect= ' Excel ', *args, **kwds)
More detailed explanations for access to the Python standard library
Python read/write CSV file