<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # package csv `import "encoding/csv"` csv讀寫逗號分隔值(csv)的文件。 一個csv分揀包含零到多條記錄,每條記錄一到多個字段。每個記錄用換行符分隔。最后一條記錄后面可以有換行符,也可以沒有。 ``` field1,field2,field3 ``` 空白視為字段的一部分。 換行符前面的回車符會悄悄的被刪掉。 忽略空行。只有空白的行(除了末尾換行符之外)不視為空行。 以雙引號"開始和結束的字段成為受引字段,其開始和結束的引號不屬于字段。 資源: ``` normal string,"quoted-field" ``` 產生如下字段: ``` {`normal string`, `quoted-field`} ``` 受引字段內部,如果有兩個連續的雙引號,則視為一個單純的雙引號字符: ``` "the ""word"" is true","a ""quoted-field""" ``` 生成: ``` {`the "word" is true`, `a "quoted-field"`} ``` 受引字段里可以包含換行和逗號: ``` "Multi-line field","comma is ," ``` 生成: ``` {`Multi-line field`, `comma is ,`} ``` ## Index * [Variables](#pkg-variables) * [type ParseError](#ParseError) * [func (e \*ParseError) Error() string](#ParseError.Error) * [type Reader](#Reader) * [func NewReader(r io.Reader) \*Reader](#NewReader) * [func (r \*Reader) Read() (record []string, err error)](#Reader.Read) * [func (r \*Reader) ReadAll() (records [][]string, err error)](#Reader.ReadAll) * [type Writer](#Writer) * [func NewWriter(w io.Writer) \*Writer](#NewWriter) * [func (w \*Writer) Write(record []string) (err error)](#Writer.Write) * [func (w \*Writer) WriteAll(records [][]string) (err error)](#Writer.WriteAll) * [func (w \*Writer) Flush()](#Writer.Flush) * [func (w \*Writer) Error() error](#Writer.Error) ## Variables ``` var ( ErrTrailingComma = errors.New("extra delimiter at end of line") // 不再使用 ErrBareQuote = errors.New("bare \" in non-quoted-field") ErrQuote = errors.New("extraneous \" in field") ErrFieldCount = errors.New("wrong number of fields in line") ) ``` 這些都是PaserError.Err字段可能的值。 ## type [ParseError](https://github.com/golang/go/blob/master/src/encoding/csv/reader.go#L63 "View Source") ``` type ParseError struct { Line int // 出錯的行號 Column int // 出錯的列號 Err error // 具體的錯誤 } ``` 當解析錯誤時返回ParseError,第一個行為1,第一列為0。 ### func (\*ParseError) [Error](https://github.com/golang/go/blob/master/src/encoding/csv/reader.go#L69 "View Source") ``` func (e *ParseError) Error() string ``` ## type [Reader](https://github.com/golang/go/blob/master/src/encoding/csv/reader.go#L102 "View Source") ``` type Reader struct { Comma rune // 字段分隔符(NewReader將之設為',') Comment rune // 一行開始位置的注釋標識符 FieldsPerRecord int // 每條記錄期望的字段數 LazyQuotes bool // 允許懶引號 TrailingComma bool // 忽略,出于后端兼容性而保留 TrimLeadingSpace bool // 去除前導的空白 // 內含隱藏或非導出字段 } ``` Reader從csv編碼的文件中讀取記錄。 NewReader返回的*Reader期望輸入符合[RFC 4180](http://tools.ietf.org/html/rfc4180)。在首次調用Read或者ReadAll之前可以設定導出字段的細節。 Comma是字段分隔符,默認為','。Comment如果不是0,則表示注釋標識符,以Comment開始的行會被忽略。如果FieldsPerRecord大于0,Read方法要求每條記錄都有給定數目的字段。如果FieldsPerRecord等于0,Read方法會將其設為第一條記錄的字段數,因此其余的記錄必須有同樣數目的字段。如果FieldsPerRecord小于0,不會檢查字段數,允許記錄有不同數量的字段。如果LazyQuotes為真,引號可以出現在非受引字段里,不連續兩個的引號可以出現在受引字段里。如果TrimLeadingSpace為真,字段前導的空白會忽略掉。 ### func [NewReader](https://github.com/golang/go/blob/master/src/encoding/csv/reader.go#L116 "View Source") ``` func NewReader(r io.Reader) *Reader ``` NewReader函數返回一個從r讀取的*Reader。 ### func (\*Reader) [Read](https://github.com/golang/go/blob/master/src/encoding/csv/reader.go#L134 "View Source") ``` func (r *Reader) Read() (record []string, err error) ``` Read從r讀取一條記錄,返回值record是字符串的切片,每個字符串代表一個字段。 ### func (\*Reader) [ReadAll](https://github.com/golang/go/blob/master/src/encoding/csv/reader.go#L161 "View Source") ``` func (r *Reader) ReadAll() (records [][]string, err error) ``` ReadAll從r中讀取所有剩余的記錄,每個記錄都是字段的切片,成功的調用返回值err為nil而不是EOF。因為ReadAll方法定義為讀取直到文件結尾,因此它不會將文件結尾視為應該報告的錯誤。 ## type [Writer](https://github.com/golang/go/blob/master/src/encoding/csv/writer.go#L24 "View Source") ``` type Writer struct { Comma rune // 字段分隔符(NewWriter將之設為',') UseCRLF bool // 如為真,則換行時使用\r\n // 內含隱藏或非導出字段 } ``` Writer類型的值將記錄寫入一個csv編碼的文件。 NewWriter返回的*Writer寫入記錄時,以換行結束記錄,用','分隔字段。在第一次調用Write或WriteAll之前,可以設置導出字段的細節。 Comma是字段分隔符。如果UseCRLF為真,Writer在每條記錄結束時用\r\n代替\n。 ### func [NewWriter](https://github.com/golang/go/blob/master/src/encoding/csv/writer.go#L31 "View Source") ``` func NewWriter(w io.Writer) *Writer ``` NewWriter返回一個寫入w的*Writer。 ### func (\*Writer) [Write](https://github.com/golang/go/blob/master/src/encoding/csv/writer.go#L40 "View Source") ``` func (w *Writer) Write(record []string) (err error) ``` 向w中寫入一條記錄,會自行添加必需的引號。記錄是字符串切片,每個字符串代表一個字段。 ### func (\*Writer) [WriteAll](https://github.com/golang/go/blob/master/src/encoding/csv/writer.go#L107 "View Source") ``` func (w *Writer) WriteAll(records [][]string) (err error) ``` WriteAll方法使用Write方法向w寫入多條記錄,并在最后調用Flush方法清空緩存。 ### func (\*Writer) [Flush](https://github.com/golang/go/blob/master/src/encoding/csv/writer.go#L96 "View Source") ``` func (w *Writer) Flush() ``` 將緩存中的數據寫入底層的io.Writer。要檢查Flush時是否發生錯誤的話,應調用Error方法。 ### func (\*Writer) [Error](https://github.com/golang/go/blob/master/src/encoding/csv/writer.go#L101 "View Source") ``` func (w *Writer) Error() error ``` Error返回在之前的Write方法和Flush方法執行時出現的任何錯誤。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看