gpt4 book ai didi

ruby - 多次写入一个文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:46 25 4
gpt4 key购买 nike

我想知道如何把一张图片写两次而不是写一次然后复制。
下载图片时,将其写入/tmp,然后复制到所需路径(我认为),这意味着以下代码:

cover_buffer = download_pic(link)      
buffer2 = cover_buffer
open(@dir + 'cover.jpg', 'wb') do |pic|
pic << cover_buffer.read()
end
open(@dir + 'cover2.jpg', 'wb') do |pic|
pic << cover_buffer2.read()
end

不起作用,因为 cover_buffer 和 buffer2 都指向写入 cover.jpg 时移动的同一个文件
执行该代码将在 cover.jpg 中正确写入图片,但 cover2.jpg 将是一个空文件

最佳答案

测试解决方案

在文件 two_for_one.rb 中:

current_dir  = File.expand_path(File.dirname(__FILE__))
new_file_1 = File.new(File.join(current_dir, 'image_1.png'), 'w')
new_file_2 = File.new(File.join(current_dir, 'image_2.png'), 'w')
origin_file = File.join(current_dir, 'original_image.png')

begin
File.open(origin_file, "r") do |source|
until source.eof?
chunk = source.read(1024)
new_file_1.write(chunk)
new_file_2.write(chunk)
end
end
ensure
new_file_1.close()
new_file_2.close()
end

命令行:

$ ruby two_for_one.rb

关于ruby - 多次写入一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com