我在运行Ruby脚本时创建了一个文件。在脚本完成后,如何设置脚本以使用默认编辑器或文本编辑器打开文件?
例如,我创建了一个名为“FooBar.txt”的文件,该文件会将大量信息加载到其中。我怎么能在之后打开它?
我确信这很简单,但每次我搜索它时,它都会打开一个文件来添加文本或在脚本中编辑。我实际上并没有用程序打开文件。
答案 0 :(得分:1)
您可以进行系统调用。
这是Windows的一个示例:
filename = "the_list.txt"
File.open(filename, "w"){|file|
file << "Some data\n"
}
`call notepad #{filename}`
这会使用给定的文件名调用记事本。
调用外部程序的一些变体是:
`notepad #{filename}`
system( "notepad #{filename}")
system( "call notepad #{filename}")
%x{call notepad #{filename}}
您甚至不需要添加记事本:
%x{call #{filename}}
这取决于主应用程序,该应用程序分配给您创建的文件的扩展名。
当您告诉您需要哪个系统和哪个编辑器时,可能会有更多详细信息。
另一种可能性:
require 'open3'
Open3.popen3("call #{filename}")
#or:
#Open3.popen3("call notepad #{filename}")
优点是主程序不会等到子进程结束。
Variant as script:将以下代码存储为“file_build.rb”。
filename = ARGV.first
File.open(filename, "w"){|file|
file << "Some data\n"
}
require 'open3'
puts "Call Editor"
Open3.popen3("call notepad #{filename}")
puts "End of script"
现在您可以致电file_build.rb test.txt
。创建 test.txt ,调用编辑器并关闭脚本。编辑器一直在运行,至少在我的测试中做到了(WinXP)。