【问题标题】:How to remove a 'permission denied' file from folder within R如何从 R 中的文件夹中删除“权限被拒绝”文件
【发布时间】:2020-01-17 12:02:18
【问题描述】:

我正在下载一个大型 xlsx 文件作为函数的一部分。此文件在 linux 和 mac 中使用 file.remove() 删除,但在 windows 机器中我有权限被拒绝。下面是我的函数的代码。

download.file(
'http://mirtarbase.mbc.nctu.edu.tw/cache/download/7.0/miRTarBase_MTI.xlsx',
'miRTarBase.xlsx', mode = "wb")
readxl::read_excel('miRTarBase.xlsx') -> miRTarBase
write.csv(miRTarBase, 'miRTarBase.csv')
read.csv('miRTarBase.csv', row.names = 1) -> miRTarBase
file.remove("miRTarBase.xlsx")

我在控制台中收到以下错误消息

Warning message:
In file.remove("miRTarBase.xlsx") :
 cannot remove file 'miRTarBase.xlsx', reason 'Permission denied'.

同样,此警告仅出现在 Windows 中。

此外,在检查文件本身的属性后,未选中“只读”属性。

在此之后,以下代码可以正常工作,所以我认为问题也不在于文件夹。

file.remove("miRTarBase.csv")

我认为问题在于如何在 Windows 中处理 .xlsx 文件。

当我在 Rstudio 仍在运行时尝试删除 .xlsx 文件时,我收到一条文件正在使用警告消息。关闭 R 会话后,可以毫不费力地删除 .xlsx 文件。

这让我很困惑,因为我不习惯使用 Windows。以前有人遇到过这个问题吗?将不胜感激任何可以提供的帮助。非常感谢。

【问题讨论】:

    标签: r excel xlsx


    【解决方案1】:

    您是否尝试过在 Windows 中保存为临时文件?

    tmp <-  tempfile()
    download.file(
    'http://mirtarbase.mbc.nctu.edu.tw/cache/download/7.0/miRTarBase_MTI.xlsx', tmp, mode = "wb")
    readxl::read_excel(tmp) -> miRTarBase
    write.csv(miRTarBase, 'miRTarBase.csv')
    read.csv('miRTarBase.csv', row.names = 1) -> miRTarBase
    file.remove(tmp)
    

    【讨论】:

    • 在 download.file() 函数中找不到 tmp 参数。
    猜你喜欢
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2019-11-13
    相关资源
    最近更新 更多