今天又机会尝试了下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.
分享到:
相关推荐
部分 Tempfile 扩展名是从 Paperclip 复制的。 谢谢! 这个 gem 是开源 SOA 框架 Vidibus 的一部分: 安装 将依赖项添加到应用程序的 Gemfile 中: gem "vidibus-tempfile"然后在你的控制台上调用`bundle install`...
5. **File Handling**:Ruby提供了内置的File类和Tempfile类来处理文件。在文件上传过程中,Tempfile用于临时存储上传的文件,避免直接操作用户上传的文件,提高安全性。 6. **Storage策略**:上传的文件可以存储在...
tempfile #=> #<Tempfile> 元数据 返回的Tempfile具有从响应数据中提取的一些其他属性: tempfile . content_type #=> "text/plain" tempfile . original_filename #=> "document.txt" tempfile . charset #=> "utf...
JRuby 1.7.14 修复了一系列具体的 bugs,涉及字符串操作、Tempfile 管理、Java 8 接口的静态方法调用、资源释放、数组操作、JMX 绑定问题、Java 8 性能问题、JRuby 类加载器问题、嵌入式 JAR 文件加载、$LOAD_...
虚拟备份 :rocket: 完全备份和还原您的KVM虚拟机 1.0版Stable virt-backup功能: 能够备份所有虚拟机磁盘或仅系统磁盘 ...gem install rubysl-tempfile gem install rubysl-optparse gem install open4 gem u
# temp_gif is a tempfile temp_gif = s.to_gif('test') 贡献 分叉它( ) 创建您的功能分支( git checkout -b my-new-feature ) 提交您的更改( git commit -am 'Add some feature' ) 推送到分支( git push ...
temp_file_name = params[:file].original_filename fixed_file_name = fix_encoding(temp_file_name) ``` 此外,如果使用的是较新的Ruby版本,可以尝试使用内置的`String#encode`方法: ```ruby def fix_encoding...
RSpec::PDFDiff 提供一个匹配器,用于测试生成的 PDF 是否与已保存的已知良好的 PDF 在视觉上匹配。... tmp = Tempfile . new ( [ 'document' , '.pdf' ] )begin # Assuming my_document is an instance
let task = manager.downloadTask(with: url) { (tempFileURL, response, error) in // 文件下载完成后的处理 } task.resume() ``` **三、监听下载进度** AFNetworking提供了`NSProgress`对象来监控下载进度。...
with tempfile.NamedTemporaryFile() as tmp: tmp.write(b"Hello, world!") tmp.seek(0) print(tmp.read()) ``` - **random**: 随机选择列表中的元素。 ```python import random choices = ["apple", ...
有用的链接 () 介绍 ... 理论上的支持:IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio。 如何使用 本地调试 安装() 通过插件库安装 ...Temp Fi
$data = 'the contents of my file..........'; $this->zip->add_data($name, $data); $this->zip->archive('c:/my_backup.zip');运行这些代码,你会在你的 C 盘根目录下找到一个压缩文件,解压后即为原始文件。 你...
例如,`mongoimport --host localhost --db foo --collection bar --type csv --file temp.csv --headerline --upsert`。 - **数据导出:** 使用`mongodump`工具导出数据。例如,`mongodump --host localhost --port ...
文本数据的工具 这是一组用于从简单文本文件中提取数据的工具,...=d:)/) array = file.get_2d_array(/i+ temp/, /1.*time/)特约文本数据的工具 查看最新的 master 以确保该功能尚未实现或 bug 尚未修复。 查看问题跟