使用Rtweet包拉取推特数据时JSON文件权限被拒绝报错如何解决
问题原因
- 第一条警告
package ‘rtweet’ is in use and will not be installed是因为重复执行安装命令时,rtweet包已经处于加载调用状态,R无法覆盖正在被使用的包文件,该警告不影响后续功能运行,只要此前已成功安装rtweet即可忽略。 - 第二条
Permission denied权限警告由stream_tweets()的运行逻辑导致:该函数会先将爬取的实时推特数据写入当前工作目录下的临时JSON文件,爬取结束后读取JSON生成数据框,再自动删除该临时文件。触发权限拒绝的常见原因如下:- 当前R工作目录为系统受保护路径(如Windows的C盘Program Files目录、macOS根目录、系统默认的程序安装目录),R没有该目录的写入/删除权限
- 临时JSON文件被其他进程占用(如后台杀毒软件正在扫描新生成的文件、此前运行的R进程残留未退出)
- 当前登录的系统账户为受限账户,没有本地文件的修改权限
解决方案
- 去除冗余代码:后续运行时删掉
install.packages("rtweet")行,已安装的包无需每次运行重复加载,即可消除第一条警告。 - 解决权限问题:
- 优先将R工作目录切换到有完全读写权限的普通文件夹,例如桌面、个人文档目录,使用
setwd()函数修改即可,注意路径需使用正斜杠/,或转义后的反斜杠\\,示例:# Windows示例 setwd("C:/Users/你的用户名/Desktop/rtweet_test") # macOS示例 setwd("/Users/你的用户名/Desktop/rtweet_test") - 也可以直接给
stream_tweets()指定存储临时文件的路径,添加dir参数即可:sample <- stream_tweets( q = "", timeout = 10, dir = "你有读写权限的文件夹完整路径" ) - 若仍报错,检查杀毒软件是否拦截了R的文件操作,将R加入信任名单即可。
- 优先将R工作目录切换到有完全读写权限的普通文件夹,例如桌面、个人文档目录,使用
- 该权限警告不影响最终获取的数据集:运行代码后直接调用
sample即可查看爬取到的数据框,未被删除的临时JSON文件属于冗余文件,手动删除即可。
内容的提问来源于stack exchange,提问作者KECHY
相关产品推荐
相关产品推荐

