Как я могу извлечь расширение файла, учитывая путь к файлу в качестве символа? Я знаю, что могу сделать это с помощью регулярного выражения regexpr("\\.([[:alnum:]]+)$", x)
, но интересно, есть ли встроенная функция для решения этой проблемы?
Извлечение расширения файла из пути к файлу
Ответ 1
Это то, что легко найти с помощью базовых инструментов R. Например: путь.
В любом случае загрузите пакет tools
и прочитайте ?file_ext
.
Ответ 2
Ошибка regexpr выше, если расширение содержит не-alnum (см., например, https://en.wikipedia.org/wiki/List_of_filename_extensions) В качестве altenative можно использовать следующую функцию:
getFileNameExtension <- function (fn) {
# remove a path
splitted <- strsplit(x=fn, split='/')[[1]]
# or use .Platform$file.sep in stead of '/'
fn <- splitted [length(splitted)]
ext <- ''
splitted <- strsplit(x=fn, split='\\.')[[1]]
l <-length (splitted)
if (l > 1 && sum(splitted[1:(l-1)] != '')) ext <-splitted [l]
# the extention must be the suffix of a non-empty name
ext
}
Ответ 3
Позвольте мне рассказать немного отличный ответ от https://stackoverflow.com/users/680068/zx8754
Вот простой фрагмент кода
# 1. Load library 'tools'
library("tools")
# 2. Get extension for file 'test.txt'
file_ext("test.txt")
Результат должен быть "txt".