最近我在使用 RStudio 时遇到了一个奇怪的问题(Ubuntu 18.04 上的 v1.3.1056):当我尝试打开一些文本文件时,RStudio 拒绝并显示消息 file is binary而不是文本
:
但是,我尝试打开的文件肯定是一个文本文件。以这个 bibtex 文件为例:
@misc{test,
author = {test},
year = {2018},
title = {test},
}
当我尝试使用文件名“test.bib”打开它时,出现上述错误。当将其重命名为“test.txt”时,RStudio 会毫无怨言地打开它。以下步骤为 R
代码:
rstudioapi::navigateToFile("test.bib") # won't work
file.copy("test.bib", "test.txt", overwrite = TRUE)
rstudioapi::navigateToFile("test.txt") # works perfectly
我非常确定 RStudio 不会介意文件结尾,而只是尝试以文本方式打开文件,无论过去发生什么。但现在我要么必须重命名该文件,要么使用不同的文本编辑器来编辑我的围兜和其他文件。
据我所知,这不是 Ubuntu 将文件标记为二进制的问题。否则,我认为这些命令之一会提示:
readLines("test.bib")
system("grep 'misc' test.bib")
最佳答案
这个问题的解决方案相当愚蠢。显然,在 Linux 中可以在文件夹名称中包含换行符,但 RStudio 或 file
不喜欢这样。我不知道我的 test.bib
文件位于带有换行符的文件夹中。因此问题可以通过以下方式重现:
bib <- "@misc{test,
author = {test},
year = {2018},
title = {test},
}"
dir.create("test\nfolder")
writeLines(bib, "./test\nfolder/test.bib")
rstudioapi::navigateToFile("./test\nfolder/test.bib") # throws error
当文件夹名为“测试文件夹”时它可以工作!抱歉浪费了人们的时间,我应该在其他地方测试它......
关于RStudio 无法打开某些文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62967121/