Подтвердить что ты не робот

Извлечение расширения файла из пути к файлу

Как я могу извлечь расширение файла, учитывая путь к файлу в качестве символа? Я знаю, что могу сделать это с помощью регулярного выражения regexpr("\\.([[:alnum:]]+)$", x), но интересно, есть ли встроенная функция для решения этой проблемы?

4b9b3361

Ответ 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".