作为在Windows下运行R的大型任务的一部分,我想在目录之间复制选定的文件。是否有可能在R内发出类似cp patha/filea*.csv pathb
的命令(注意通配符,用于额外的香料)?使用R来复制文件
Q
使用R来复制文件
29
A
回答
42
我不认为有广告直接的方式(害羞的脱壳),但类似以下的东西通常适用于我。
flist <- list.files("patha", "^filea.+[.]csv$", full.names = TRUE)
file.copy(flist, "pathb")
注:
- 我特意在两个步骤中分解,可以将它们组合。
- 请参阅正则表达式:R使用true正则表达式,并将文件模式与路径分开,分为两个独立的参数。
- 注意正则表达式中的
^
和$
(beg /字符串结尾) - 这是一个常见的疑难问题,因为它们对通配符类型模式是隐含的,但对于正则表达式是必需的(避免与通配符模式匹配的某些文件名但也可以选择附加文本开始和/或结束)。 - 在Windows环境中,人们通常会将
ignore.case = TRUE
参数添加到list.files
,以模拟目录搜索对此操作系统不区分大小写的事实。 - R的
glob2rx()
函数提供了将通配符模式转换为正则表达式的便捷方式。例如,fpattern = glob2rx('filea*.csv')
返回一个不同但等效的正则表达式。
11
可以
- 使用
system()
到断火的命令,如果它是在外壳,含通配符 - 使用
list.files()
又名dir()
做文件名匹配/ reg.exp匹配自己和拷贝文件分别如图MJV的回答 - 对单个文件使用
file.copy
+0
从来没有听说过'dir'。它与'list.files'非常相似...奇怪的是都有 – MichaelChirico 2016-08-30 00:23:43
相关问题
- 1. 使用R来循环子目录和复制文件
- 2. 如何使用循环播放csv文件来复制文件
- 3. 使用Python复制文件
- 4. 使用bash复制文件
- 5. 使用SSH复制文件
- 6. 使用FileUtils.copyFile复制文件
- 7. 使用Cordova复制文件
- 8. 使用maven复制文件
- 9. 系统调用来复制文件
- 10. 使用R来重塑并绘制linux dstat CSV文件
- 11. 使用MSI文件复制文件
- 12. 使用新文件名复制文件
- 13. 如何用python 35来复制和复制几个文件?
- 14. 使用CopyFileEx来复制另一个用户的加密文件
- 15. 使用R来组合重复的列
- 16. 使用java 7复制文件方法将文件复制到文件夹
- 17. 使用Angular-CLI构建来复制文件/目录
- 18. 使用Python 3 shutil来复制文件并保持destfile可写?
- 19. 如何使用FTP或HTTP来复制数据库文件
- 20. 试图在Java中使用xcopy来复制文件夹
- 21. 为什么我不能使用shutil来复制.CR2文件?
- 22. 我可以使用svn copy来复制模板文件夹吗?
- 23. 如何使用批量复制来更新文件?
- 24. 复制文件VS不复制文件?
- 25. SWT使用来自文件的复合
- 26. 复制R中子文件夹的文件夹
- 27. Python脚本来复制文件
- 28. 来自Ressources的.NET复制文件
- 29. 使用文件系统监视器来监视正在复制的文件吗?
- 30. 使用R比较来自2个文件的数据使用R
我认为这个模式应该是''^ filea。+ [。] csv“'。 – Marek 2010-03-05 08:28:35
@Marek:对,你是!另外,特别是在Windows世界中,人们通常会添加“ignore.case = TRUE”参数。我相应编辑,谢谢。 – mjv 2010-03-05 13:16:57
您可以使用?glob2rx将通配符转换为正则表达式。 – 2010-03-05 14:45:13