文件中的错误(文件,“rt”):无法打开连接[重复]

Posted

技术标签:

【中文标题】文件中的错误(文件,“rt”):无法打开连接[重复]【英文标题】:Error in file(file, "rt") : cannot open the connection [duplicate] 【发布时间】:2015-02-12 12:03:45 【问题描述】:

我是 R 新手,在广泛研究了这个错误之后,我仍然无法找到解决方案。这是代码。我检查了我的工作目录,并确保文件位于正确的目录中。欣赏它。谢谢

pollutantmean <- function(directory, pollutant = "nitrate", id= 1:332)            
                 if(grep("specdata",directory) ==1) 
            
                    directory <- ("./specdata")
            
            mean_polldata <- c()
            specdatafiles <- as.character(list.files(directory))
            specdatapaths <- paste(directory, specdatafiles, sep="")
                            for(i in id) 
                    
                    curr_file <- read.csv(specdatapaths[i], header=T, sep=",")
                    head(curr_file)
                    pollutant
                    remove_na <- curr_file[!is.na(curr_file[, pollutant]), pollutant]
                    mean_polldata <- c(mean_polldata, remove_na)
                    
            
                    mean_results <- mean(mean_polldata)
                    return(round(mean_results, 3))
            
 

我得到的错误如下:

Error in file(file, "rt") : cannot open the connection

file(file, "rt")

read.table(file = file, header = header, sep = sep, quote = quote, 
    dec = dec, fill = fill, comment.char = comment.char, ...)

read.csv(specdatapaths[i], header = T, sep = ",")

pollutantmean3("specdata", "sulfate", 1:10)

In addition: Warning message:
In file(file, "rt") :
  cannot open file './specdata001.csv': No such file or directory

【问题讨论】:

看起来你有 (??) 一个目录 specdata 和文件 001.csv 等。那么正确的路径是 ./specdata/001.csvnot ./specdata001.csv .尝试在specdatapaths 行中将sep="" 更改为sep="/" 或者尝试 Degugging 101 策略,例如打印给抛出错误的函数的值。 感谢两位的回复。我能够修复打开的连接错误,但现在我收到“选择了未识别的列”错误。有什么建议?谢谢污染平均(“specdata”,“硫酸盐”,1:10)[.data.frame(curr_file,,污染物)中的错误:选择了未定义的列6停止(“选择了未定义的列”)5 [.data.frame(curr_file,,污染物)4 curr_file[, 污染物] 3 [.data.frame(curr_file, !is.na(curr_file[, 污染物]), 污染物) 2 curr_file[!is.na(curr_file[, 污染物]), 污染物] 1 污染物平均值("specdata", “硫酸盐”,1:10) 您应该将其作为一个单独的问题提出。多行代码在 cmets 中几乎不可读。 欢迎这个问题,以帮助所有可能面临此问题的未来 r 用户。 【参考方案1】:

你需要把directory &lt;- ("./specdata")改成directory &lt;- ("./specdata/")

相对于您当前的工作目录,您正在寻找文件 001.csv,它位于您的 specdata 目录中。

如果没有任何上下文,这个问题几乎是不可能回答的,因为您没有在此处向我们提供您的工作目录的结构。幸运的是,我已经在 Coursera 上学习过 R 编程,所以我已经完成了这个作业问题。

【讨论】:

一般的解决办法是在开头加上setwd("/absolute/path/of/directory/with/required/files/")。 我一直在更改工作目录,而我的工作文件的文件夹就在这个目录中。 Rstudio 仍然无法进入文件文件夹。所以是的,必须在用户/主文件夹之后输入全部内容。 (虽然这是在 Mac 中)。【参考方案2】:

我猜你看到这个错误的原因是因为 RStudio 丢失了你的工作目录的路径。

(1) 进入会话...

(2) 设置工作目录...

(3) 选择目录...

--> 然后你可以看到弹出一个窗口。

--> 选择存储数据的文件夹。

这是无需任何代码即可更改工作目录的方式。 希望对您有所帮助。

【讨论】:

【参考方案3】:

将您的工作目录设置为高一级/文件夹。例如,如果已经设置为:

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera/specdata")

往回上一级设置为:

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera")

换句话说,不要将“specdata”文件夹作为您的工作目录。

【讨论】:

【参考方案4】:

我也花了很多时间试图了解我的代码出了什么问题...

如果你使用的是windows,这似乎很简单。

当您将文件命名为“blabla.txt”时,Windows 将其命名为“blabla.txt.txt”... 这与 .CSV 文件相同,因此如果您将其命名为“001.csv”,Windows 会创建一个名为“001.csv.csv”的文件

因此,当您创建 .csv 文件时,只需将其重命名为“001”并使用 read.table("/absolute/path/of/directory/with/required/001.csv") 在 R 中打开它

它对我有用。

【讨论】:

哇,这对我也有用.. 在 Windows 10 中,rstudio。谢谢! 轰隆隆!添加文件扩展名。谢谢【参考方案5】:

关闭您的 R 工作室并以管理员身份再次运行它。这对我来说很神奇。希望它对你和任何经历过这个的人都有效。

【讨论】:

【参考方案6】:

如果您在访问文件时遇到此类错误,可以使用file.exists("file_path/file_name") 函数进行更好的检查。如果文件存在且可访问,此函数将返回TRUE,否则返回False

【讨论】:

作品:目录 【参考方案7】:

如果在 Windows 上运行,请尝试以管理员身份运行 R 或 R Studio,以避免 Windows 操作系统文件系统限制。

【讨论】:

【参考方案8】:

使用setwd() 切换到适当的目录。 仅使用文件名来访问工作目录中的任何文件。 使用"../&lt;filename&gt;" 导航上面的文件夹。

【讨论】:

【参考方案9】:

遇到这个错误,发现我的 Windows 机器上的 RStudio 尝试使用 \ 作为转义符号,所以不得不用 \\ 替换它来处理它。

用你的路径尝试file.exists函数,例如:

file.exists("D:\\R\\path_to_file.csv")

【讨论】:

【参考方案10】:

文件错误(文件,“rt”):

我刚刚遇到了同样的错误,并通过使用 paste0 而不是 paste 删除地址中的空格来解决

filepath=paste0(directory,"/",filename[1],sep="")

【讨论】:

【参考方案11】:

我收到了同样的错误消息,并以最简单的方式修复了它。我将我的 .csv 文件放入桌面上的文件夹中,在 RStudio 控制台旁边的窗口中打开桌面,然后在那里打开我的文件,并选中我的 .csv 文件旁边的框,然后我使用了“更多”此窗口顶部的下拉菜单将其设置为我的工作目录...对于像我这样的超级初学者来说可能是最简单的事情:)

【讨论】:

【参考方案12】:

当您尝试在路径中直接使用 getwd() 的结果时,也会出现此错误。问题是末尾缺少“/”。试试下面的代码:

projectFolder <- paste(getwd(), "/", sep = '')

paste() 是在末尾连接正斜杠。

【讨论】:

【参考方案13】:

我从朋友那里得到了我的 R 代码文件,但无法运行 read.csv 命令,但如果我将相同的命令 (read.csv) 复制到新的 R 脚本文件,它运行良好。

下面的命令没有在我朋友共享的 R 代码文件中运行,工作目录、文件名等都是正确的,因为如果我创建了一个新的 R 脚本文件并在命令下面运行,它就可以工作。

           df <- read.csv("file.csv",header=TRUE,stringsAsFactors = FALSE,strip.white = 
           TRUE,sep = ',')

问题/解决方案: 我右键单击 R 代码文件并取消阻止文件并单击保存按钮,问题得到解决。 我您的 R 代码文件位于 windows 的 Downloads 文件夹中,然后移至其他文件夹。

【讨论】:

【参考方案14】:

我遇到了同样的问题。我从文件名中删除了扩展名。例如我的文件名保存为 xyz。 .csv。我把它保存为 xyz。

【讨论】:

【参考方案15】:

我在尝试导入 10,000 个文件时遇到了同样的错误。我尝试使用 Excel 打开单个文件,但 Excel 给了我一条错误消息:“文件路径太长”。

文件被埋在 6 个嵌套文件夹中,这本身就是一个问题。将所有文件移动到桌面文件夹即可解决问题,而无需更改任何代码。

【讨论】:

【参考方案16】:

我遇到了一个基于线程中弹出的一些答案的解决方案。 (Windows 10)

setwd("D:/path to folder where the files are")
directory <- getwd()
myfile<- "a_file_in_the_folder.txt"
filepath=paste0(directory,"/",myfile[1],sep="")
table <- read.table(table, sep = "\t", header=T, row.names = 1, dec=",")

【讨论】:

【参考方案17】:

文件错误(文件,“rt”)

创建了一个 .r 文件并将其与 sample_10000.csv 文件一起保存在 Desktop 中。

一旦尝试阅读它

heisenberg <- read.csv(file="sample_100000.csv")

遇到了和你一样的错误

海森堡


我知道至少有两种方法可以解决这个问题,一种是使用绝对路径,另一种是更改工作目录。

绝对路径

我修正了它添加文件的绝对路径,更准确

heisenberg <- read.csv(file="C:/Users/tiago/Desktop/sample_100000.csv")

工作目录

出现此错误是因为 RStudio 定义了一个特定的工作目录,该目录不一定是 .r 文件所在的位置。

因此,要使用这种方法进行修复,我已转到会话 > 设置工作目录 > 选择目录 (CTRL + Shift + H) 并选择 .csv 文件所在的桌面。这样运行以下命令也有效

heisenberg <- read.csv(file="sample_100000.csv")

【讨论】:

以上是关于文件中的错误(文件,“rt”):无法打开连接[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在vs中运行C++程序出现错误无法打开包括文件“iostream.h”

obiee 12c 管理工具未启动错误:bi_metadata_rt.dll 文件丢失

错误:无法打开类文件 R.java [重复]

我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]

收到“致命错误 C1083:无法打开包含文件:'gxall.h':没有这样的文件或目录”[重复]

致命错误 C1083:无法打开包含文件:'atlbase.h' Pyinsane 包 [重复]