Ruby中如何将文本文件作为参数传入并打印其内容?
解决方案:通过命令行参数传入文件并打印内容
没问题!要实现把文本文件作为参数传入代码(而非硬编码文件名),同时打印文件内容,Ruby里用内置的ARGV数组就能轻松搞定,我给你两种实用的方案:
方案1:单文件处理+基础错误提示
这个方案会检查用户是否传入了参数,避免脚本直接报错,交互更友好:
# 获取命令行传入的第一个文件名参数 filename = ARGV.first # 如果没有传入参数,给出提示并退出 unless filename puts "请传入要读取的文件名作为参数,示例用法:" puts "ruby your_script.rb test_list.txt" exit 1 end # 打开文件并逐行打印内容 File.open(filename).each do |line| puts line end
使用方法
在终端里运行你的脚本,后面跟上要处理的文件名就行:
ruby your_script.rb test_list.txt
方案2:支持多文件批量处理
如果需要一次处理多个文本文件,这个方案更高效,它会遍历所有传入的文件参数:
# 遍历所有命令行传入的文件名 ARGV.each do |filename| # 用File.foreach更高效,不需要一次性加载整个文件到内存 File.foreach(filename) do |line| puts line end end
使用方法
一次传入多个文件名即可:
ruby your_script.rb file1.txt file2.txt file3.txt
小提示
ARGV是Ruby的内置数组,会自动收集你在命令行运行脚本时传入的所有参数File.foreach比File.open(...).each更适合大文件,因为它会逐行读取,不会占用过多内存
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

