今天又机会尝试了下Ruby的Tempfile库,相比于自己创建临时文件再删除的方法简便了很多。

require 'tempfile'tmp = Tempfile.new("tmp")tmp.path # => /tmp/tmp20110928-12389-8yyc6w 不唯一tmp.write("This is a tempfile")
tmp.rewind
tmp.read # => "This is a tempfile"tmp.close
tmp.unlink # => 删除文件

当程序退出时,Ruby会自动删除临时文件,所以我们不用显式调用unlink来删除文件。但是这是一个好习惯,解释如下:

When a Tempfile object is garbage collected, or when the Ruby interpreter
exits, its associated temporary file is automatically deleted. This means
that's it's unnecessary to explicitly delete a Tempfile after use, though it's
good practice to do so: not explicitly deleting unused Tempfiles can
potentially leave behind large amounts of tempfiles on the filesystem until
they're garbage collected. The existance of these temp files can make it
harder to determine a new Tempfile filename.

Ruby之Tempfile相关推荐

  1. Ruby中的设计模式——《松本行弘的程序世界》

    < 设计模式 > 一书是用C++ 和 Smalltalk 介绍模式实例的.看了那些例子,大家都会感觉到,绝大多数的模式用 Smalltalk 实现起来非常简单.这是为什么呢? 因为Smal ...

  2. ruby File类

    类方法 路径相关: File.basename(filename <, suffix>) -> string返回给定文件名 filename 的最后一部分.如果有 suffix 参数 ...

  3. 在Ruby中获取system()调用的输出

    本文翻译自:Getting output of system() calls in Ruby 如果我在Ruby中使用Kernel#system调用命令,我该如何获得它的输出? system(" ...

  4. 《Ruby程序员修炼之道》(第2版)—第1章1.2节剖析Ruby的安装

    本节书摘来自异步社区<Ruby程序员修炼之道>一书中的第1章,第1.2节剖析Ruby的安装,作者[美]David A. Black(戴维 A. 布莱克),更多章节内容可以访问云栖社区&qu ...

  5. DIY Ruby CPU 分析 Part II

    [编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...

  6. RubyProgramming:向Ruby之父学程序设计pdf

    下载地址:网盘下载 内 容 简 介 编辑 Ruby是为了让程序设计更快乐而开发的程序语言.Ruby具有"彻底面向对象"."丰富的程序库"."亲和力高的 ...

  7. Ruby从入门到精通pdf

    下载地址:网盘下载 内容简介  · · · · · · <Ruby从入门到精通>还讲解了Ruby关键内容(如类.对象.项目.模板和程序库)以及Ruby的其他方面(如数据库访问).另外,&l ...

  8. Ruby学习之文件的写入和读取

    Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现,所有的 I/O 方法派生自 IO 类,类 IO 提供了所有基础的方法,比如 read. write. gets. puts ...

  9. pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)

    pig 脚本运行不需要后缀名 pig脚本名为tempfile,无后缀名 用pig -f tempfile 可直接运行 另外,pig tempfile也可以直接运行 这样就可以用python临时文件存储 ...

最新文章

  1. Caused by: java.sql.BatchUpdateException
  2. BPM与Portal SSO实施方案v2
  3. C++Primer 第一章 快速入门 学习
  4. eclipse安装快速打开项目所在位置的插件
  5. Android AOP之字节码插桩
  6. java nio socket长连接_netty学习实战—实现websocket长连接和socket之间进程通信
  7. Spark 实时电商数据分析及可视化
  8. C++学习笔记:(七)C语言实现面向对象编程
  9. MVC是什么?(转载)
  10. java web项目_[适合初中级Java程序员修炼手册从0搭建整个Web项目](二)
  11. 工业和信息化部办公厅关于公布2021年产业技术基础公共服务平台复核结果的通知
  12. python pep8_Python 代码风格 和 PEP8
  13. 21 个必须知道的机器学习开源工具!
  14. #10015 灯泡(无向图连通性+二分)
  15. 从0到1CTFer成长之路-第二章-Web文件上传漏洞
  16. 腾讯与360之争随笔 (12月21日,最后一次更新)
  17. 首发国产软硬件完美兼容STM32F407系列功能简介
  18. 网易2016笔试(3)
  19. 深入正则表达式(0):正则表达式概述
  20. Qt调整分辨率让文字变大或变小后变化解决方案

热门文章

  1. pcl_filters模块api代码解析
  2. PCL中点云数据格式之间的转化
  3. JS获取一个字符串中被指定的两个字符串包括起来的所有字符串数组
  4. 在Ubuntu 16.04.6 LTS升级python 3.5.x到3.7.3之后导致gnome-ternimal无法打开的解决办法
  5. 在Ubuntu 14.04 64bit上安装python mongoDB模块
  6. AutoCAD 2D与3D大师班学习教程 AutoCAD 2D and 3D Masterclass
  7. 《UNIX高级环境编程》 -- apue.h
  8. Dubbo 2.7.1 踩坑记
  9. Leetcode 391.完美矩形
  10. AEC、AGC、ANS在视音频会议中的作用?