我非常喜欢初学者。我想学习读取和写入文件。这是我正在尝试的。如何从同一个目录中的文件读取?
rdfile = File.open('bhaarat.txt', 'r+')
不幸的是,这回“C:/directoriesblahblah/ubuntu3.rb:1: '初始化':没有这样的文件或目录 - bhaarat.txt(错误:: ENOENT)
我有找到解决方案,但我不仅新Ruby,但新的总体规划,所以我不能获取对我有意义了这些的答案。
提前感谢!
我非常喜欢初学者。我想学习读取和写入文件。这是我正在尝试的。如何从同一个目录中的文件读取?
rdfile = File.open('bhaarat.txt', 'r+')
不幸的是,这回“C:/directoriesblahblah/ubuntu3.rb:1: '初始化':没有这样的文件或目录 - bhaarat.txt(错误:: ENOENT)
我有找到解决方案,但我不仅新Ruby,但新的总体规划,所以我不能获取对我有意义了这些的答案。
提前感谢!
要获得路径当前文件,您可以使用:
__FILE__
为了获得在当前文件所在的目录,你可以使用:
File.dirname(__FILE__)
要创建的字符串的路径,你可以使用:
File.join('part1', 'part2', ...)
因此,创建在该目录中的文件路径,您可以使用:
File.join(File.dirname(__FILE__), 'filename')
如果您的文件Ë名字是bhaarat.txt
,以上变为:
File.join(File.dirname(__FILE__), 'bhaarat.txt')
如果更换,在你的代码,你会得到:
rdfile = File.open(File.join(File.dirname(__FILE__), 'bhaarat.txt'), 'r+')
您也可以使这是一个独立的变量,如果你想,做代码更易读:
path = File.join(File.dirname(__FILE__), 'bhaarat.txt')
rdfile = File.open(path, 'r+')
+1,非常详细的回答 –
我打印Dir.pwd,它正在搜索错误的目录!所以我想一个人需要确保它是第一个正确的目录。谢谢你的帮助! – vheissu
加入Dir.pwd实际上是无用的,默认情况下路径相对于它。 –
在当前目录中搜索文件,而不是脚本所在的目录。
C:\> ruby scripts\ubuntu3.rb
No such file or directory - bhaarat.txt
先移到文件位置,然后运行脚本。例如,如果文件位于与脚本相同的目录中:
C:\> cd scripts
C:\scripts> ruby ubuntu3.rb
找到了一些可以做到的事。搜索有点困难,发现this:
我改变了我的原代码
rdfile = File.open('bhaarat.txt', 'r+')
到
rdfile = File.open(File.join(File.dirname(__FILE__),'bhaarat.txt'), 'r+')
,这使得它看起来在你的.rb文件的目录,而不是目录您的命令提示符当前处于。
您可以发布您的解决方案吗? –