R脚本使用readline获取文件名时未暂停等待输入的问题求助
解决R脚本末尾
readline()不暂停的问题 出现这个问题的核心原因是R的输出缓冲区未及时刷新,导致readline()的提示信息没有显示在控制台,看起来像是程序没暂停,但实际上它在等待输入——只是你看不到提示,误按回车就会传入空字符串。
以下是两种可行的解决办法:
方法1:强制刷新控制台缓冲区
在调用readline()前加上flush.console(),强制把缓冲区里的内容输出到控制台,确保提示信息能正常显示:
# 刷新控制台,确保提示能显示 flush.console() csv_name <- readline(prompt = "Input the name of the file: ") write.csv(df, csv_name)
方法2:清空残留的输入缓冲区
如果前面的代码有输入操作残留了换行符在输入缓冲区里,也会导致readline()直接读取空值。可以先清空输入缓冲区再执行readline():
# 读取并丢弃残留的输入行(如果有的话) invisible(readLines(n = 1, warn = FALSE)) # 刷新控制台 flush.console() csv_name <- readline(prompt = "Input the name of the file: ") write.csv(df, csv_name)
优先用方法1,大部分情况都能解决问题;如果还是不行,再试试方法2。
内容的提问来源于stack exchange,提问作者Keegan
相关产品推荐
相关产品推荐

