美文网首页
Ruby文件操作

Ruby文件操作

作者: 刘明洋 | 来源:发表于2019-10-29 14:05 被阅读0次

一、文件操作

f=File.new("#{File.dirname(__FILE__)}/temp.m", "w+")
f.puts("I am lmy")
1、文件模式

"r" :只读。从文件开头开始(默认模式)。
"r+" :读写。从文件的开头开始。
"w" :只写。将现有文件截断为零长度,或创建用于写入的新文件。
"w+" :读写。将现有文件截断为零长度,或创建用于读取和写入的新文件。
"a" :只写。如果文件存在,则在文件结尾处开始;否则,创建一个新文件以供编写。
"a+" :读写。如果文件存在,则在文件末尾开始;否则,创建用于读取和写入的新文件。
"b" :(仅限DOS/Windows)二进制文件模式。可能与上面列出的任何关键字母一起出现。

2、读取文件
file=File.open("#{File.dirname(__FILE__)}/temp.m","r")
file.each { |line| print "#{file.lineno}.", line }
file.close

上面读取文件,并一行行输出来。

3、新建、删除、重命名文件
File.new("#{File.dirname(__FILE__)}/tal.txt", "w" )
File.rename("#{File.dirname(__FILE__)}/tal.txt", "#{File.dirname(__FILE__)}/tal_test.txt")
File.delete("#{File.dirname(__FILE__)}/tal_test.txt")

二、目录操作

1、创建目录
Dir.mkdir("#{File.dirname(__FILE__)}/testDir")
2、删除目录
Dir.rmdir("#{File.dirname(__FILE__)}/testDir")
3、查询目录里的文件
p=Dir.entries("#{File.dirname(__FILE__)}/testDir")
puts(p)
4、遍历目录
Dir.entries("#{File.dirname(__FILE__)}/testDir").each {
          |e| puts e
    }

三、ARGV and ARGF

1、ARGV

在运行ruby脚本的时候,所有的参数会以Array的形式保存到ARGV中。

2、ARGF

ARGF则会根据ARGV中的值一个一个的处理,每处理一个就从ARGV中移除一个,直到处理完所有的值。

四、文件信息查询

文件是否存在

    p=File::exists?( "cnblogslink.txt" ) # => true

是否是文件

    p=File.file?( "cnblogslink.txt" ) # => true

是否是目录

    p=File::directory?( "c:/ruby" ) # => true
    p=File::directory?( "cnblogslink.txt" ) # => false

文件权限

    p=File.readable?( "cnblogslink.txt" ) # => true
    p=File.writable?( "cnblogslink.txt" ) # => true
    p=File.executable?( "cnblogslink.txt" ) # => false

是否是零长度

    p=File.zero?( "cnblogslink.txt" ) # => false

文件大小 bytes

    p=File.size?( "cnblogslink.txt" ) # => 74
    p=File.size( "cnblogslink.txt" ) # => 74

文件或文件夹

    p=File::ftype( "cnblogslink.txt" ) # => "file"

文件创建、修改、最后一次存取时间

    p=File::ctime( "cnblogslink.txt" ) # => Sat Sep 19 08:05:07 +0800 2019
    p=File::mtime( "cnblogslink.txt" ) # => Sat Sep 19 08:06:34 +0800 2019
    p=File::atime( "cnblogslink.txt" ) # => Sat Sep 19 08:05:07 +0800 2019

五、查找文件

puts "查找目录下所有文件及文件夹"

    Dir["c:/ruby/*"].each {|x| 
          puts x
    } 

puts "条件查询"

    Dir.foreach('c:/ruby') { 
        |x| puts x if x != "." && x != ".."
    }

puts "查找某一类型文件"

    Dir["*.rb"].each {|x| 
      puts x
     }

puts "Open 查询"

    Dir.open('c:/ruby') { |d| d.grep /l/ }.each{|x| puts x}
    puts "---------------------------"      
    puts "正则表达式查询"
    Dir["c:/ruby/ruby/[rs]*"].each{|x| puts x} 
    puts "------------------------"
    Dir["c:/ruby/[^s]*"].each{|x| puts x}
    puts "------------------------"    
    Dir["c:/ruby/{ruby,li}*"].each{|x| puts x} 
    puts "------------------------"    
    Dir["c:/ruby/?b*"].each{|x| puts x}        

puts "查找目录及子目录的文件"

    require 'find'     
    Find.find('./') { |path| puts path }

六、查询目录及子目录文件

    require "find"
Find.find("/etc/passwd", "/var/spool/lp1", ".") do |f|
  Find.prune if f == "."
  puts f
end
原型:ref.find( [ aName ]* ) {| aFileName | block }
prune:Skips the current file or directory, restarting the loop with the next entry. If the current file is a directory, that directory will not be recursively entered. Meaningful only within the block associated with Find::find.

七、文件比较 复制等

    require 'ftools' 
    File.copy 'testfile', 'testfile1'  » true 
    File.compare 'testfile', 'testfile1'  » true

相关文章

  • Ruby文件操作

    一、文件操作 1、文件模式 "r" :只读。从文件开头开始(默认模式)。"r+" :读写。从文件的开头开始。"w"...

  • Ruby 文件/文本操作

  • Ruby 基础 ---学习笔记(一)

    系统基于 Mac 用的是Mac 自带的Ruby 简单的打印: 命令操作 文件操作

  • ruby文件夹操作

    一、新建文件 f=File.new(File.join("C:","Test.txt"), "w+") f.put...

  • Ruby操作Excel【转】

    Ruby操作excel文件首先需要在脚本里包含以下语句 打开excel文件,对其中的sheet进行访问: 读取数据...

  • [Ruby]语法

    所有的 Ruby 文件扩展名都是.rb 运行文件 $ rubytest.rb Ruby 程序中的空白 在 Ruby...

  • idea设置scss自动编译

    操作步骤 安装ruby 环境 下载ruby installer https://rubyinstaller.org...

  • Ruby 操作文件文件夹时间类

    操作文件 进入irb目录1.重命名文件,前提是class.rb存在,返回0表示重命名成功File.rename("...

  • 《ruby 教程》ruby初探

    执行 ruby ruby 文件 控制台用 ruby 执行文件($代表控制台执行,不是命令) 直接在控制台打开 ru...

  • gem details

    Gem 操作指南 and Ruby Gem 命令详解 Gem 是一个管理ruby库和程序的标准包,它通过Ruby ...

网友评论

      本文标题:Ruby文件操作

      本文链接:https://www.haomeiwen.com/subject/ymmwvctx.html