0

我打算从挂载路径逐行读取 csv 文件,对每一行执行一些操作,然后将其写回新的 csv 文件。使用下面读取文件,但它说找不到文件。我能够读取数据框中的文件,但无法使用以下代码读取文件。

import scala.io.Source

val filename = "/mnt/jomount/ProductDetails.csv"
for (line <- Source.fromFile(filename).getLines) {
    println(line)
}

错误:

java.io.FileNotFoundException: /mnt/jomount/ProductDetails.csv (No such file or directory)

还想知道我们如何在每一行上执行一些操作(一行一行,因为我需要检查一些东西!)并将其写回一个新的 csv 文件

4

1 回答 1

0

在 Scala 2.13 中,您可以使用以下代码段:

import java.io._
import scala.util.Using
Using(new PrintWriter(new File("out.csv" ))) { file =>
    for (line <- Source.fromFile("in.csv").getLines) {
        process(line) // given that "process(string: String)" is in scope
        file.println(line)
    }
}

在以前版本的 Scala 中,您必须自己处理异常和close()ing。

至于丢失的文件:我会厚颜无耻地假设您提供的路径实际上并没有引用现有文件。

于 2020-06-14T07:02:08.557 回答