草庐IT

读取头

全部标签

ruby - 使用 utf-8 编码写入和读取文件

我一直在阅读所有与UTF-8相关的问题和博客文章,并且在test.rb文件中有以下示例:#encoding:UTF-8File.open("test.txt","w")do|f|f.write"test©foo"endFile.open("test.txt","r")do|f|putsf.readend这非常有效。是在文件中正确生成©符号,并将©读回给我并将其打印在屏幕上。但是当我在我的实际项目中使用相同的代码时,我将其写入文件而不是©符号:\u00A9FWIW:我在针对我的代码运行rspec(v1.2.9)测试时得到了这个结果。规范生成一个带有©符号的文件,然后读回该文件以检查内容。

ruby - 使用 Ruby 逐行读取、编辑和写入文本文件

有没有一种在Ruby中就地读取、编辑和写入文件的好方法?在我的在线搜索中,我发现了一些建议将其全部读入一个数组,修改所述数组,然后写出所有内容。我觉得应该有更好的解决方案,尤其是当我要处理一个非常大的文件时。类似于:myfile=File.open("path/to/file.txt","r+")myfile.eachdo|line|myfile.replace_puts('blah')ifline=~/myregex/endmyfile.closereplace_puts将覆盖当前行,而不是像当前那样(覆盖)写入下一行,因为指针位于行尾(分隔符之后)。因此,匹配/myregex/的每

Ruby 将 CSV 文件读取为 UTF-8 和/或将 ASCII-8Bit 编码转换为 UTF-8

我正在使用ruby1.9.2我正在尝试解析包含一些法语单词(例如spécifié)的CSV文件,并将内容放入MySQL数据库中。当我从CSV文件中读取行时,file_contents=CSV.read("csvfile.csv",col_sep:"$")返回的元素是ASCII-8BIT编码的字符串(spécifié变为sp\xE9cifi\xE9),然后像“spécifié”这样的字符串没有正确保存到我的MySQL数据库中。YehudaKatz表示ASCII-8BIT实际上是“二进制”数据,这意味着CSV不知道如何读取适当的编码。所以,如果我尝试让CSV强制编码如下:file_cont

ruby - 是否可以使用 Ruby 读取文件的修改日期?

是否可以使用Ruby读取文件的修改日期?我已经成功地打开了一个文本文件并捕获了文件的内容File.open("test.txt","r").eachdo|line|"但是读取文件的修改日期会非常有用。 最佳答案 使用mtime:File.mtime("testfile")=>2014-04-1316:00:23-0300 关于ruby-是否可以使用Ruby读取文件的修改日期?,我们在StackOverflow上找到一个类似的问题: https://stacko

ruby - 如何在 Ruby 中读取整个文件?

Ruby中是否有一个内置函数可以在不使用任何循环的情况下读取整个文件?到目前为止,我只遇到过以block(行或字符)读取的方法。 最佳答案 IO.read("filename")或File.read("filename") 关于ruby-如何在Ruby中读取整个文件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3328495/

ruby - 在 Ruby 中连续读取外部进程的 STDOUT

我想通过ruby​​脚本从命令行运行blender,然后它将逐行处理blender给出的输出以更新GUI中的进度条。Blender是我需要读取其标准输出的外部进程并不重要。当blender进程仍在运行时,我似乎无法捕捉到blender通常打印到shell的进度消息,我已经尝试了几种方法。我似乎总是在blender退出后访问blender的标准输出,而不是在它仍在运行时。这是一个失败尝试的例子。它确实获取并打印了blender输出的前25行,但仅在blender进程退出后:blender=nilt=Thread.newdoblender=open"|blender-bmball.blen

ruby - 在 Ruby 中从控制台读取输入?

我想用ruby​​编写一个简单的A+B程序,但我不知道如何使用控制台。 最佳答案 你是说gets吗?puts"EnterA"a=gets.chompputs"EnterB"b=gets.chompc=a.to_i+b.to_iputsc类似的东西?更新Kernel.gets尝试读取在ARGV中找到的参数,并且仅在未找到ARGV时才询问控制台。即使ARGV不为空也强制从控制台读取,使用STDIN.gets 关于ruby-在Ruby中从控制台读取输入?,我们在StackOverflow上找到

ruby - 如何在 Ruby 中读取文件的行

我试图使用以下代码从文件中读取行。但是在阅读file时,内容全部在一行中:line_num=0File.open('xxx.txt').eachdo|line|print"#{line_num+=1}#{line}"end但是这个file分别打印每一行。我必须使用标准输入,例如rubymy_prog.rb,我无法假设文件使用的行结束字符是什么。我该如何处理? 最佳答案 Ruby确实有一个方法:File.readlines('foo').eachdo|line|puts(line)endhttp://ruby-doc.org/core

ruby - 在 Ruby 中将二进制文件读取为字符串

我需要一种简单的方法来获取tar文件并将其转换为字符串(反之亦然)。有没有办法在Ruby中做到这一点?我最好的尝试是这样的:file=File.open("path-to-file.tar.gz")contents=""file.each{|line|contents我认为这足以将它转换为字符串,但是当我尝试像这样写回它时......newFile=File.open("test.tar.gz","w")newFile.write(contents)这不是同一个文件。执行ls-l显示文件大小不同,尽管它们非常接近(打开文件会显示大部分内容完好无损)。我是否犯了一个小错误或完全不同(但可

ruby - 在 Ruby 中读取文件的常用方法有哪些?

在Ruby中读取文件的常用方法有哪些?例如,这是一种方法:fileObj=File.new($fileName,"r")while(line=fileObj.gets)puts(line)endfileObj.close我知道Ruby非常灵活。每种方法的优点/缺点是什么? 最佳答案 如果文件不是太长,最简单的方法是:putsFile.read(file_name)确实,IO.read或File.read会自动关闭文件,因此无需使用File.openblock。 关于ruby-在Ruby中