`
try001
  • 浏览: 5473 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

给ruby程序以及ruby待操作的文件以完整的路径

阅读更多
有的时候需要给ruby程序以及ruby待操作的文件以完整的路径,举例说明吧:

在g:\ding\anpc\163_anpc.rb程序中有如下代码:

3.times {
load ‘..\anpc\data_163.rb’
load ‘..\bin\bin_163.rb’
}

如果在g:\ding\anpc\ 下执行163_anpc.rb, 程序可以正常运行,但如果在别的路径,比如c:\,执行g:\ding\anpc\163_anpc.rb,程序就会报错,说找不到data_163.rb和bin_163.rb。

解决问题的方法是给ruby程序以完整的路径,如下所示:

3.times {
load File.join(File.dirname(__FILE__), ‘data_163.rb’)
load File.join(File.dirname(__FILE__), ‘../bin/bin_163.rb’)
}

类似的例子:

在g:\ding\anpc\data_163.rb程序中有如下代码:

#初始化user
users = []
File.open(’user_163_anpc.txt’) do |f|
f.each_line do |line|
words = line.split(’ ‘)
users << {:user => words[0], :password => words[1]}
end
end

该程序在g:\ding\anpc\ 下执行data_163.rb, 文件操作正常,但如果在别的路径,比如c:\,执行g:\ding\anpc\data_163.rb,程序就会报错,说找不到文件user_163_anpc.txt。

解决问题的方法是给待操作的文件以完整的路径,如下所示:

#初始化user
users = []
users_filename = File.join(File.dirname(__FILE__), ‘user_sina_anpc.txt’)
File.open(users_filename) do |f|
f.each_line do |line|
words = line.split(’ ‘)
users << {:user => words[0], :password => words[1]}
end
end

我自己的原创:http://www.sdgz.cn

分享到:
评论
6 楼 try001 2010-01-19  
dazuiba 写道
try001 写道
trace 写道
你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib"

如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__)

主要的目的是将测试程序放在usb盘上,方便在不同计算机上运行。


那你可以用符号链接嘛, 一个ln -s 搞定。

谢谢dazuiba兄弟,用subst命令搞掂。
现在正重新整理文件,估计可以大大提高程序结构的整洁,我以前怎么没想到呢?或许可以将程序所在的文件夹映射到虚拟内存中,提高运行速度?
5 楼 dazuiba 2010-01-18  
try001 写道
trace 写道
你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib"

如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__)

主要的目的是将测试程序放在usb盘上,方便在不同计算机上运行。


那你可以用符号链接嘛, 一个ln -s 搞定。
4 楼 try001 2010-01-11  
trace 写道
你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib"

如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__)

主要的目的是将测试程序放在usb盘上,方便在不同计算机上运行。
3 楼 trace 2010-01-11  
你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib"

如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__)
2 楼 try001 2010-01-08  
RednaxelaFX 写道
hmm...常见的做法不是File.expand_path(File.dirname(__FILE__))么

这里,不仅要获得绝对路径,还需要加上同目录下的其它文件名。
1 楼 RednaxelaFX 2010-01-06  
hmm...常见的做法不是File.expand_path(File.dirname(__FILE__))么

相关推荐

    ruby程序安装文件

    Ruby是一种强大的、面向对象的编程语言,以其简洁的语法和高效性而闻名。它由日本人松本行弘(Yukihiro Matsumoto)在1990年代末创建,旨在提供一种更人性化的编程体验,强调程序员的生产力和代码的可读性。Ruby的...

    ruby写的命令行操作文件系统(初学)

    这通常意味着这个Ruby脚本包含了上述操作的示例或者是一个驱动程序,它会演示如何在命令行环境中使用Ruby操作文件系统。要运行这个脚本,确保你已经在命令行中导航到包含`main.rb`的目录,然后执行`ruby main.rb`。 ...

    ruby 读取cfg文件

    在Ruby编程语言中,读取配置文件(如cfg文件)是一项常见的任务,这通常涉及...确保在运行前适当调整文件路径,以确保代码能正确读取cfg文件。通过这种方式,你可以更好地理解和掌握在Ruby中读取和操作配置文件的方法。

    ruby导出csv文件

    要从Ruby程序中导出数据到CSV文件,我们可以利用`FasterCSV`库,它为处理CSV文件提供了高效且灵活的方法。尽管在Ruby 1.9及更高版本中,`FasterCSV`已经被`csv`标准库所取代,但在某些情况下,开发者可能仍选择使用`...

    Linux操作系统下轻松配置Ruby的程序环境

    ### Linux操作系统下轻松配置Ruby的程序环境 在Linux操作系统中配置Ruby开发环境是许多开发者进行Web应用开发的基础工作之一。本文将详细介绍如何在Linux环境下安装和配置Ruby及相关工具,包括Ruby语言本身、Rails...

    Ruby Ini文件读写

    1. 文件路径的正确性:确保指定的文件路径有效,否则可能会引发`Errno::ENOENT`错误。 2. 键值对的格式:键和值都应该是字符串,且键不能包含等号(=)。 3. 编码问题:如果INI文件包含非ASCII字符,应确保使用正确...

    ruby 程序设计

    - **编辑工具**:除了命令行外,还可以使用FreeRIDE、SciTE等编辑器进行Ruby程序的开发。 ##### §2.3 Ruby-irb - **交互式解释器**:irb是Ruby的一个交互式命令行环境,可以即时测试代码片段。 ##### §2.4 Ruby-...

    ruby windows一键安装

    7. **创建和运行Ruby程序**:现在你已经可以在Windows上编写和运行Ruby程序了。使用文本编辑器创建`.rb`文件,然后在命令提示符中输入`ruby your_script.rb`运行程序。 8. **更新Ruby和Gem**:随着时间的推移,新...

    ruby x64 exe文件

    这个安装程序是一个可执行文件,它包含了Ruby解释器、标准库以及必要的工具,使用户能够在Windows环境下轻松安装和配置Ruby。RubyInstaller是Ruby在Windows平台上的官方安装工具,它负责处理依赖性、设置环境变量和...

    ruby离线安装所需所有的gem文件(另有安装包)

    `sqlite3-ruby`是Ruby对SQLite3数据库的绑定,它允许Ruby程序直接与SQLite3数据库进行交互。SQLite3是一种轻量级的、文件级别的数据库引擎,常用于小型项目或者开发阶段的数据存储。在离线环境中,`sqlite3-ruby`的...

    在Ruby中处理XML和XSLT以及XPath的简单教程

    本篇教程将介绍如何在Ruby环境中处理XML(可扩展标记语言),XSLT(可扩展样式表转换语言),以及XPath(XML路径语言),这些都是基于文本的标记语言和技术,它们能够帮助开发者高效地处理数据,并在不同的应用平台...

    Ruby程序设计.doc

    ### Ruby程序设计知识点详解 #### 一、Ruby语言概述 **1.1 Ruby的历史** Ruby是一种面向对象的脚本语言,由日本人松本行弘(Matz)于1995年设计并发布。Ruby的设计理念是简洁、高效且易于学习。 **1.2 Ruby名字...

    ruby语法基础教程

    随着你对Ruby的理解加深,你将探索更多概念,如类、模块、方法、继承、 Mixins、异常处理、模块化编程、集合类型(如数组和哈希)、正则表达式以及文件和目录操作。Ruby还拥有丰富的标准库和第三方Gem(Ruby的库包)...

    Exerb 5.3(生成Ruby编写的exe文件)

    使用: mkexy 文件路径 exerb 生成的.exy文件的路径 说明:mkexy把*.rb所需的类库文件都包含进来 特点:速度相对快点,生成的exe体积要小些,经尝试只有用exerb的mkexy功能才能生成一个完美的gui程序,exy文件中还...

    Ruby-qtbindings允许你在Ruby中使用QTGui工具包

    例如,一个简单的Ruby程序使用qtbindings创建一个带按钮的窗口可能如下所示: ```ruby require 'qtbindings' app = Qt::Application.new [] button = Qt::PushButton.new('点击我') button.show app.exec ``` ...

    ruby1.8.6-26

    3. 配置:在安装向导中选择安装路径,以及是否需要将Ruby添加到系统PATH环境变量中,这将使得命令行可以直接运行Ruby命令。 4. 安装:点击“安装”按钮,等待安装完成。 5. 验证:安装完毕后,打开命令提示符并输入`...

    ruby - ruby tutorial

    完成本教程的学习后,读者应该能够熟练掌握 Ruby 的基本概念和常用操作,并能够开始构建简单的 Ruby 应用程序。接下来,可以继续探索更高级的主题,如面向对象编程、网络编程等,或者尝试参与实际的项目来进一步提升...

    Ruby2.3文件和gem文件

    安装完成后,你就可以在Ruby程序中导入并使用这个库,如`require 'redis'`,然后创建连接对象,进行数据操作。 `安装步骤.txt`文档应该包含了更详细的安装指导,包括可能遇到的问题和解决方法,以及特定环境下的...

    ruby安装包-rubyinstaller-devkit-3.0.2-1-x64.zip

    总的来说,"rubyinstaller-devkit-3.0.2-1-x64.zip"是一个完整的Ruby开发环境,包含Ruby解释器和必要的开发工具,使得Windows用户可以轻松地安装和使用Ruby及其相关的开源库。这个压缩包对于希望在Windows系统上进行...

    Ruby工具 windows 环境

    Ruby是一种面向对象的脚本语言,它以其简洁、优雅的语法和强大的编程能力而闻名。在Windows环境下设置和使用Ruby工具对于开发者来说是一项基础任务。本文将深入探讨Ruby在Windows平台上的安装、配置以及基本使用。 ...

Global site tag (gtag.js) - Google Analytics