【发布时间】:2013-10-22 11:55:42
【问题描述】:
这听起来很愚蠢,但它让我头疼了 3 小时……!! 我创建了一个类方法,我在其中提取文件基名(放置在根文件夹中)。问题是 IO.readlines 方法不接受具有从提取返回的基本名称的文件。它返回错误:
./lib/fileCheck.rb:36:in `readlines': No such file or directory - (Errno::ENOENT)
但只要我在 readlines 中手动输入文件基本名称,它就会起作用。这是类方法:
class FileCheck
def self.read_file
file = File.basename(Dir[File.join(File.expand_path('../.'), "*.txt")].to_s)
file = IO.readlines(file)
return file
end
end
没有结果,但只要我手动放置文件名,它就可以完美运行。
def self.read_file
#file = File.basename(Dir[File.join(File.expand_path('../.'), "*.txt")].to_s)
file = IO.readlines('sample.txt')
return file
end
我检查了 irb 和语句
File.basename(Dir[File.join(File.expand_path('../.'), "*.txt")].to_s)
正在返回类 String 的文件基名。
有什么建议吗??????
【问题讨论】:
-
basename调用究竟返回了什么?p file_fasta的发布结果 -
在 irb 中它返回类字符串的文件基名(例如“sample.txt”)。这就是我想要的。在 prog 执行期间,返回的基本名称文件变量也是类字符串。但不知何故它不能与 readlines 一起使用???
-
ohh p file_fasta 什么也没返回??一个空字符串
-
你期望
File.basename(Dir[File.join(File.expand_path('../.'), "*.txt")].to_s)会返回什么? -
Sergio,感谢您的回复,但我解决了这个问题。问题在于扩展路径。现在它工作正常。