CSV.swift

用 Swift 编写的 CSV 读写库
授权协议 MIT
开发语言 Swift
所属分类 开发工具、 程序文档工具
软件类型 开源软件
地区 不详
投 递 者 宇文育
操作系统 OS X
开源组织
适用人群 未知
 软件概览

CSV.swift 是用 Swift 编写的 CSV 读写库。

读取 CSV 的用法

从字符串

import CSV

let csvString = "1,foo\n2,bar"
let csv = try! CSVReader(string: csvString)
while let row = csv.next() {
    print("\(row)")
}
// => ["1", "foo"]
// => ["2", "bar"]

从文件

注意:默认字符编码是UTF8.

import Foundation
import CSV

let stream = InputStream(fileAtPath: "/path/to/file.csv")!
let csv = try! CSVReader(stream: stream)
while let row = csv.next() {
    print("\(row)")
}

获取 Header 行

import CSV

let csvString = "id,name\n1,foo\n2,bar"
let csv = try! CSVReader(string: csvString,
                         hasHeaderRow: true) // It must be true.

let headerRow = csv.headerRow!
print("\(headerRow)") // => ["id", "name"]

while let row = csv.next() {
    print("\(row)")
}
// => ["1", "foo"]
// => ["2", "bar"]

使用下标获取字段值

import CSV

let csvString = "id,name\n1,foo"
let csv = try! CSVReader(string: csvString,
                         hasHeaderRow: true) // It must be true.

while csv.next() != nil {
    print("\(csv["id"]!)")   // => "1"
    print("\(csv["name"]!)") // => "foo"
}

提供字符编码

如果使用文件路径,则可以向初始化程序提供字符编码。

import Foundation
import CSV

let stream = InputStream(fileAtPath: "/path/to/file.csv")!
let csv = try! CSVReader(stream: stream,
                         codecType: UTF16.self,
                         endian: .big)

将一行读入 Decodable 对象

如果你有一个符合Decodable协议的目标对象,那就可以使用该对象的新实例序列化一行。

struct DecodableExample: Decodable {
    let intKey: Int
    let stringKey: String
    let optionalStringKey: String?
}

let csv = """
    intKey,stringKey,optionalStringKey
    1234,abcd,
    """

var records = [DecodableExample]()
do {
    let reader = try CSVReader(string: csv, hasHeaderRow: true)
    let decoder = CSVRowDecoder()
    while reader.next() != nil {
        let row = try decoder.decode(DecodableExample.self, from: reader)
        records.append(row)
    }
} catch {
    // Invalid row format
}

写入 CSV 的用法

写入内存并获取 CSV 字符串

注意:默认字符编码是UTF8.

import Foundation
import CSV

let csv = try! CSVWriter(stream: .toMemory())

// Write a row
try! csv.write(row: ["id", "name"])

// Write fields separately
csv.beginNewRow()
try! csv.write(field: "1")
try! csv.write(field: "foo")
csv.beginNewRow()
try! csv.write(field: "2")
try! csv.write(field: "bar")

csv.stream.close()

// Get a String
let csvData = csv.stream.property(forKey: .dataWrittenToMemoryStreamKey) as! Data
let csvString = String(data: csvData, encoding: .utf8)!
print(csvString)
// => "id,name\n1,foo\n2,bar"

写入文件

注意:默认字符编码是UTF8.

import Foundation
import CSV

let stream = OutputStream(toFileAtPath: "/path/to/file.csv", append: false)!
let csv = try! CSVWriter(stream: stream)

try! csv.write(row: ["id", "name"])
try! csv.write(row: ["1", "foo"])
try! csv.write(row: ["1", "bar"])

csv.stream.close()

安装

CocoaPods

pod  'CSV.swift' ,  '~> 2.4.3'

Carthage

github "yaslab/CSV.swift" ~> 2.4.3

Swift 包管理器

.package(url: "https://github.com/yaslab/CSV.swift.git", .upToNextMinor(from: "2.4.3"))

 

 

  •     public class CSV {     let newLine: String = "\n"     let csvData: String       public let delimiter: String     public var headers: [String]     public var columns: [String: [String]]     public

  • csv文件 csv也叫逗号分隔值文件 —— 每一行内容是通过逗号来区分出不同。 csv文件可以直接通过excel打开。以行列保存显示文件,相对excel 他只能保存数据,不能保存公式和函数 csv.reader(文件对象) —— 获取文件内容,并且以列表为单位返回每一行内容 csv的读操作: import csv # 1) 创建打开csv """ 文件对象 = open() """ # 2)

  • 最近在做一个游戏助手类App,前期数据量较小,朋友帮忙抓取了一下装备数据存在CSV文件中,这里简单介绍一下SwiftCSV的安装使用及简单封装 安装 我们这里使用Cocoapods安装 target 'Tk300HeroAssistant' do pod 'SwiftCSV' 读入CSV文件 首先我们要读入CSV文件,创建一个CSV对象 首先我们从字符串字面量来创建一个CSV对象 let

  • 读csv文件: getline:这里读进来的文件里面存储的数必须是以“空格”为间隔的,否则数读不进来的; 保存: 保存的时候可以用空格或者逗号都可以,看你需要了,如果这个文件你还要读,那么最好用空格; std::ifstream fin("C://Users//Mloong//Desktop//read.csv"); //open file std::ofstream out_8

  • excel另存为csv csv文件的后缀名改为txt 打开txt,选择另存为UTF-8格式(这步貌似要在win下面才能完成) 然后就可以使用NSString的contentsOfFile方法获取了 再配合分割字符串方法,即可得到具体字符     let manage = NSBundle.mainBundle() let filePath = manage.pathForResource("xxx

  • -(void)readCSVData{ NSString *path = [[NSBundle mainBundle] pathForResource:@"values" ofType:@"csv"]; NSString *fileContents = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEnco

  • csv文件上传/读取/压缩/保存 import com.fasterxml.jackson.dataformat.csv.CsvMapper; import com.fasterxml.jackson.dataformat.csv.CsvSchema; import com.fasterxml.jackson.databind.SequenceWriter; import com.fasterxm

  • layout: post title: “在js中使用csv” description: csv读取与转换 categories: js csv json 读取本地 csv 文件 ### 同步操作,等待得到结果后,再return ### 异步操作,得到promise export function csvToJson(filePath) { let result = [] var xhr

  • public class CsvReader { public <T> T format(T obj, String line) throws IntrospectionException, InvocationTargetException, IllegalAccessException, InstantiationException { line = "admin|男"

  • 什么是CSV? CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的 应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往 是私有的和/或无规范的格式)。因为大量程序都支持某种CSV变体,至少是作为一种可 选择的输入/输出格式。 “CSV”并不是一种单一的、定义明确的格式。因此在实践中,术语“CSV”泛指具有以 下特征的任何文件: 1、纯文本,使用

 相关资料
  • 本文向大家介绍 用Python读写csv,包括了 用Python读写csv的使用技巧和注意事项,需要的朋友参考一下 示例 CSV(Comma Separated Values)是一种用于存储表格数据(例如电子表格)的简单文件格式。这是如何在Python中读写数据的最小示例。 将数据写入CSV文件: 从CSV文件读取数据:            

  • 问题内容: 我正在读取2个csv文件:&。 我希望能够将CSV文件与进行比较。1)如果项目名称匹配,只需更新store_inventory中的数量。2)如果new_acquisitions具有不存在的新项目,则将其添加到中。 这是我到目前为止所做的,但是效果不是很好。我在需要添加taks 1 和 2的 地方添加了注释。 任何建议或执行上述任务的代码都将非常有用!谢谢。 再次感谢任何帮助。=] 问题

  • 主要内容:read_csv(),to_csv()在《 Python Pandas读取文件》中,我们讲解了多种用 Pandas 读写文件的方法。本节我们讲解如何应用这些方法 。 我们知道,文件的读写操作属于计算机的 IO 操作,Pandas IO 操作提供了一些读取器函数,比如 pd.read_csv()、pd.read_json 等,它们都返回一个 Pandas 对象。 在 Pandas 中用于读取文本的函数有两个,分别是: read_csv(

  • 问题 你想读写一个CSV格式的文件。 解决方案 对于大多数的CSV格式的数据读写问题,都可以使用 csv 库。 例如:假设你在一个名叫stocks.csv文件中有一些股票市场数据,就像这样: Symbol,Price,Date,Time,Change,Volume "AA",39.48,"6/11/2007","9:36am",-0.18,181800 "AIG",71.38,"6/11/2007

  • 本文向大家介绍利用python 读写csv文件,包括了利用python 读写csv文件的使用技巧和注意事项,需要的朋友参考一下 1、读文件 csv_reader把每一行数据转化成了一个list,list中每个元素是一个字符串。 2、写文件 读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。 可能遇到的问题:直接使用这种写法会导致文件每一行后面会多一个空行。 解决办法

  • 问题内容: 我试图在Windows计算机上使用Python 3.2编写一个简单的CSV文件,但是我没有运气。从Python 3.2 的csv模块文档中: 产生一个文件,该文件的每一行都以字节序列结尾,因此当您使用MS Excel等打开文件时,每行看起来都有一个多余的空行。这不是“ CSV文件”。 请注意,如果我在Python 3.2中尝试相同的Python 2.7示例(最大的区别在于文件模式与vs

  • 问题内容: 我在Flask框架之外编写CSV没问题。但是,当我尝试从Flask编写它时,它会写入CSV,但只能写在一行上。 这是我关注的模板 这样可以完美地编写CSV,但是当我尝试使用代码时,会得到一长行。 我的代码: 我的输出: 谢谢。 编辑:我几乎尝试了所有答案,并且它们大部分都起作用,但是我选择了vectorfrog,因为它与我要完成的任务相吻合。 问题答案: 我最近做了类似的事情,发现我需