使用变量路径和文件名写入CSV文件的问题
解决R中write.csv生成文件找不到的问题
核心问题排查
你遇到的问题大概率是当前工作目录与你预期的不一致:
- 你硬编码的路径是
~/Documents/projects/farmCSV//data.csv,但getwd()返回的是/Users/myname/projects/farmCSV,这是两个不同的目录。 - 你的代码确实生成了文件,但文件被写到了
getwd()对应的目录(/Users/myname/projects/farmCSV),而你去~/Documents/projects/farmCSV找,自然找不到。
解决方案
方案1:确认并切换到正确的工作目录
先打印当前工作目录,确认是否和你要输出的目录一致:
print(getwd())
如果不一致,手动切换到目标目录:
setwd("~/Documents/projects/farmCSV")
然后再执行你的原有代码,文件就会生成在你预期的位置。
方案2:简化代码,直接使用相对路径
write.csv默认会将文件写入当前工作目录,无需手动拼接路径,直接使用用户输入的文件名即可:
# 读取文件名并去除前后可能的空格 varNewName <- trimws(readline(prompt = "Name the file :")) # 直接写入当前工作目录 write.csv(dfTemp, file = varNewName, row.names = FALSE)
建议添加
row.names = FALSE,避免输出文件自动添加无意义的行号列。
方案3:验证文件是否真的生成
如果还是不确定,可以用file.exists()检查文件是否存在:
varFileName <- paste0(getwd(), "/", varNewName) write.csv(dfTemp, varFileName) # 检查文件是否存在 print(file.exists(varFileName))
如果返回TRUE,直接打开这个路径查看文件:
# 打开文件所在目录 browseURL(dirname(varFileName))
内容的提问来源于stack exchange,提问作者DP-WA
相关产品推荐
相关产品推荐

