从路径中提取文件夹、文件名和扩展名

乔希

我有一个包含文件路径和名称的数据框,格式如下:

files_list <- c(
  "C:/User/Name/Folder/Subfolder1/Sub-subfolder/file.txt", 
  "C:/User/Name/Folder/Subfolder1/Sub-subfolder/file - Copy.txt",
  "C:/User/Name/Folder/Subfolder1/Sub-subfolder/file (1).txt",
  "C:/User/Name/Folder/Subfolder1/Sub-subfolder/file - Copy (2).txt",
  "C:/User/Name/Folder/Subfolder1/fileB.txt",
  "C:/User/Name/Folder/file.C.txt",
  "C:/User/Name/Folder/file-D.txt", 
  "C:/User/Name/Folder/file",
  "C:/User/Name/Folder/file Z.txt", 
  "C:/User/Name/Folder/file - backup.txt"
)

每个文件都有一个父文件夹和一个名称。这些名称可能包含一个或多个句点“.”。和/或破折号“-”。此外,有些具有“复制”符号、编号指定和/或文件扩展名。我想将数据转换为如下所示的内容:

[1]  "Sub-subfolder   file   txt"
[2]  "Sub-subfolder   file   Copy   txt"
[3]  "Sub-subfolder   file   1   txt"
[4]  "Sub-subfolder   file   Copy   2   txt"
[5]  "Subfolder1   fileB   txt"
[6]  "Folder   file.C   txt"
[7]  "Folder   file-D   txt"
[8]  "Folder   file"
[9]  "Folder   file Z   txt"
[10] "Folder   file - backup   txt"

这是我认为应该起作用的代码:

sub(
  "(^.:/)([^/.]+/)*([^/.]+/)([^/]+)(\\s-\\sCopy)?(\\s\\(([0-9]+)\\))?(\\.([^.]+))?$", 
  "\\3   \\4   \\5   \\7   \\9",
  files_list
)

但我得到的是:

[1] "Sub-subfolder/   file.txt         "           
[2] "Sub-subfolder/   file - Copy.txt         "    
[3] "Sub-subfolder/   file (1).txt         "       
[4] "Sub-subfolder/   file - Copy (2).txt         "
[5] "Subfolder1/   fileB.txt         "             
[6] "Folder/   file.C.txt         "                
[7] "Folder/   file-D.txt         "                

斜线“/”和额外的空格我可以处理,但是“复制”符号、数字名称和文件扩展名并没有像我期望的那样分开。

关于如何识别“复制”符号、编号指定和文件扩展名的任何建议?或者我应该只在一行代码中识别父文件夹,并将其余的放在另一行中?

(最终,我会将这些文本字符串转换为一个数据框,文件夹、文件名、副本名称和扩展名是单独的列。我很确定我可以用 来做到这一点tidyr::separate,但即使这样也需要了解正则表达式,我想学习如何使用()和返回引用。)

赫特尔

这可能有帮助:

library(tools)
as.data.frame(cbind(dirname(files_list), file_path_sans_ext(basename(files_list)), file_ext(files_list)))
#                                            V1              V2  V3
#1 C:/User/Name/Folder/Subfolder1/Sub-subfolder            file txt
#2 C:/User/Name/Folder/Subfolder1/Sub-subfolder     file - Copy txt
#3 C:/User/Name/Folder/Subfolder1/Sub-subfolder        file (1) txt
#4 C:/User/Name/Folder/Subfolder1/Sub-subfolder file - Copy (2) txt
#5               C:/User/Name/Folder/Subfolder1           fileB txt
#6                          C:/User/Name/Folder          file.C txt
#7                          C:/User/Name/Folder          file-D txt
#8                          C:/User/Name/Folder            file    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从完整路径中提取不带扩展名的文件名?

来自分类Dev

通过提取文件名和扩展名的第一部分来重命名文件夹中的文件(R 编程)

来自分类Dev

从资产文件夹获取仅具有.txt扩展名的文件的文件名

来自分类Dev

查找并列出文件名扩展名以包括子文件夹

来自分类Dev

Excel VBA:文件夹名称未知但扩展名已知的文件夹路径

来自分类Dev

Windows批处理-根据文件名和扩展名将文件移动到文件夹

来自分类Dev

从路径中提取最新的文件名

来自分类Dev

从文件名中提取路径

来自分类Dev

从向量中提取具有扩展名的文件名

来自分类Dev

如何从父路径提取带有扩展名的文件名?MS Access VBA

来自分类Dev

从文件路径仅获取文件名(不带扩展名和目录)

来自分类Dev

提取不带扩展名R的CSV文件名

来自分类Dev

提取不带扩展名的文件名-Ansible

来自分类Dev

提取具有扩展名URL的文件名

来自分类Dev

提取不带扩展名R的csv文件名

来自分类Dev

如何从特定文件夹中提取文件,文件名存储在python列表中?

来自分类Dev

从文件路径中紧接文件名之前提取文件夹名称

来自分类Dev

VBA将完整文件名分为几列(目录,文件夹,文件夹,文件名,扩展名等)

来自分类Dev

从文件夹中的文件名(没有文件扩展名)创建字符串列表的Pythonic方法?

来自分类Dev

在特定扩展名的文件中搜索字符串后提取文件夹名称

来自分类Dev

用路径和扩展名替换文件名

来自分类Dev

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

来自分类Dev

如何从文件夹或文件名中提取特定名称

来自分类Dev

移动包含扩展名的文件的文件夹

来自分类Dev

如何检测选定文件夹和选定文件扩展名中的更改文件?

来自分类Dev

Excel VBA公式:从文件路径提取文件扩展名?

来自分类Dev

perl 如何获取文件名和扩展名

来自分类Dev

设置文件名和扩展名的问题

来自分类Dev

将具有不同扩展名的最旧文件名移动到公共文件夹。Python

Related 相关文章

  1. 1

    如何从完整路径中提取不带扩展名的文件名?

  2. 2

    通过提取文件名和扩展名的第一部分来重命名文件夹中的文件(R 编程)

  3. 3

    从资产文件夹获取仅具有.txt扩展名的文件的文件名

  4. 4

    查找并列出文件名扩展名以包括子文件夹

  5. 5

    Excel VBA:文件夹名称未知但扩展名已知的文件夹路径

  6. 6

    Windows批处理-根据文件名和扩展名将文件移动到文件夹

  7. 7

    从路径中提取最新的文件名

  8. 8

    从文件名中提取路径

  9. 9

    从向量中提取具有扩展名的文件名

  10. 10

    如何从父路径提取带有扩展名的文件名?MS Access VBA

  11. 11

    从文件路径仅获取文件名(不带扩展名和目录)

  12. 12

    提取不带扩展名R的CSV文件名

  13. 13

    提取不带扩展名的文件名-Ansible

  14. 14

    提取具有扩展名URL的文件名

  15. 15

    提取不带扩展名R的csv文件名

  16. 16

    如何从特定文件夹中提取文件,文件名存储在python列表中?

  17. 17

    从文件路径中紧接文件名之前提取文件夹名称

  18. 18

    VBA将完整文件名分为几列(目录,文件夹,文件夹,文件名,扩展名等)

  19. 19

    从文件夹中的文件名(没有文件扩展名)创建字符串列表的Pythonic方法?

  20. 20

    在特定扩展名的文件中搜索字符串后提取文件夹名称

  21. 21

    用路径和扩展名替换文件名

  22. 22

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

  23. 23

    如何从文件夹或文件名中提取特定名称

  24. 24

    移动包含扩展名的文件的文件夹

  25. 25

    如何检测选定文件夹和选定文件扩展名中的更改文件?

  26. 26

    Excel VBA公式:从文件路径提取文件扩展名?

  27. 27

    perl 如何获取文件名和扩展名

  28. 28

    设置文件名和扩展名的问题

  29. 29

    将具有不同扩展名的最旧文件名移动到公共文件夹。Python

热门标签

归档