使用 scala 从 FilePath 中提取文件夹名称和文件名

Tai*_*oye 5 scala text-extraction feature-extraction

我有从目录读取的文件流,文件树的形式如下:

/repository/resources/2016-03-04/file.csv
/repository/resources/2016-03-04/file2.csv
/repository/resources/2016-03-05/file3.csv
/repository/resources/2016-03-05/file4.csv
Run Code Online (Sandbox Code Playgroud)

请,我需要帮助使用 scala 提取日期文件夹的名称和表单中的 .csv 文件:

2016-03-03 file.csv
2016-03-04 file2.csv
2016-03-05 file3.csv
2016-03-05 file4.csv
Run Code Online (Sandbox Code Playgroud)

slo*_*ouc 5

作为对 @PavelOliynyk 建议的补充,您可以执行以下操作:

val list = List(
  "/repository/resources/2016-03-04/file.csv",
  "/repository/resources/2016-03-04/file2.csv",
  "/repository/resources/2016-03-05/file3.csv",
  "/repository/resources/2016-03-05/file4.csv")

val datesAndFiles = list.map(_.split("/").takeRight(2).toList)
Run Code Online (Sandbox Code Playgroud)

这是假设每个字符串中的最后两项是日期和文件名。我将其转换为列表,以便如果您需要进一步处理它,您可以轻松地进行模式匹配,例如,这就是您为每一行获取元组的方式:

val datesAndFileTuples = datesAndFiles.map({
  case date :: file :: Nil => (date, file)
})
Run Code Online (Sandbox Code Playgroud)

这为您提供了每个日期文件对的元组。如果您希望将它们分成日期和文件(每个都在自己的列表中),您可以这样做:

val (dates :: files :: Nil) = datesAndFiles.transpose
Run Code Online (Sandbox Code Playgroud)

它会返回两个列表,一个包含日期,另一个包含文件名。