ruby - 如何遍历文件夹中的文件并将它们编码为base64以存储在ruby中的数组中?
问题描述
Dir.foreach("/home/kaustubh/Downloads/resumes") do |fopen|
...d << Base64.encode64(file.read)
end
我正在 ruby 终端中读取文件并尝试将整个文件编码为 base64 格式,但我的输出是一个所有值都为空的数组。
数组 d 应该以 base64 编码格式存储数组中的所有文件。
解决方案
您的 Ruby 代码不执行任何操作。如果您将其复制并粘贴到 IRB 中,则会出现错误。
根据您编写的内容,您希望读取目录中的每个文件并将其编码为 base64,然后将 base64 存储在一个数组中。下面是你如何做到这一点:
d = []
Dir['/home/kaustubh/Downloads/resumes/*'].each do |file|
d << Base64.encode64(File.read(file))
end
Dir['/home/kaustubh/Downloads/resumes/*']
将返回该目录内容的路径数组。(包括子目录,所以要小心)
然后调用.each do |file|
该数组,并为数组中的每个file
调用File.read
将文件读入字符串对象。然后你对字符串进行编码Base64.encode64
并将其存储在你的数组中。
推荐阅读
- json - JSON Endoding 和解码 CoreData
- c# - 如何用我的代码解决这个问题?C#
- python - 使用 csv.reader 将文件读入列表但跳过特定列(Python)
- python - 如何避免 python 中传入 udp 数据包之间的高时间间隔?
- git - 强制 Git 读取包含 NUL 的 ANSI 文件
- css - 如何仅在 div 的一部分内滚动
- regex - 为什么这个 vim 搜索和替换功能需要多次“运行”才能完全工作
- django - Django MEDIA_URL 附加完整的 MEDIA_ROOT
- c++ - 在为我的程序抛出“std::out_of_range”实例后调用终止,该程序查找并替换字符串中的单词
- c++ - 如何在 Windows 上的 CMakelist.txt 中包含 Eigen 库