【发布时间】:2019-05-05 04:38:55
【问题描述】:
我正在尝试使用框架 CreateML 读取 .csv 文件的内容以读取 csv 数据。
即使文件存在,以下代码也会产生错误:
let csvURL = URL(fileURLWithPath: "/Volumes/MAC HDD/Data/Data.csv")
let fm = FileManager()
if (fm.fileExists(atPath: csvURL.path)) {
let dataTable = try! MLDataTable(contentsOf: csvURL)
// accessing first column
let col_1 = Array.init(dataTable["col1"])
}
我收到以下错误消息:
线程 1:致命错误:“尝试!”表达式意外引发错误:CreateML.MLCreateError.generic(原因:“没有与指定路径对应的文件(file:///Volumes/MAC%20HDD/Data/Data.csv)”)
我几乎检查了所有内容,但没有得到任何结果。我做错了什么?
【问题讨论】:
-
如果路径中没有空格会怎样?如果在空格前加上反斜杠会发生什么?
"/Volumes/MAC\ HDD/Data/Data.csv" -
这给出了
invalid escape sequence in literal的错误。 -
对了,你需要转义反斜杠:
"/Volumes/MAC\\ HDD/Data/Data.csv" -
这也给了我一个错误(文件不存在)。我认为空格根本不是问题,因为
fileURLWithPath给了我一个有效的文件url,用于检查文件是否存在。我已尝试在路径中没有任何空间的另一个卷,但仍然收到相同的错误消息。