gpt4 book ai didi

ruby - 使用 File.open 从 ruby​​ 中的目录打开文件

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:49 25 4
gpt4 key购买 nike

我是 Ruby 的新手,我正在尝试以如下方式打开文件:

#! /usr/bin/env ruby
data_file = '~/path/to/file.txt'
file = File.open(data_file, 'r')

但是我得到“没有这样的文件或目录”(该文件确实存在于该目录中)。如果我将该文件路径作为命令行参数,它会起作用,例如:

#! /usr/bin/env ruby
file = File.open(ARGV[0], 'r')

然后从命令行运行,如:ruby script.cgi ~/path/to/file.txt

关于如何让它以第一种方式工作的任何想法?

最佳答案

路径不会扩展,但是当您通过命令行运行它时它会扩展。我相信在 unix 系统中,路径会在运行调用之前展开,这意味着:

ruby file.rb ~/path/to/file

实际上扩展为

ruby file.rb /home/user/path/to/file

您可以通过在终端中运行以下命令来验证这一点(或使用 p ARGV[0] 创建一个 ruby​​ 文件并运行它):

echo "p ARGV[0]" | ruby "" ~/path/to/file #/home/user/path/to/file

您可以使用 File.expand_path~ 更改为 /home/user

data_file = '~/path/to/file.txt'
file = File.open(File.expand_path(data_file), 'r')

关于ruby - 使用 File.open 从 ruby​​ 中的目录打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com