gpt4 book ai didi

Ruby - 检查是否为空后无法写入文件

转载 作者:数据小太阳 更新时间:2023-10-29 08:22:23 26 4
gpt4 key购买 nike

如果文件为空,程序应该写"File Empty";否则,它应该写成"File Full"。这是我到目前为止所拥有的:

fname = "fileTest.txt"
somefile = File.open(fname, "w")

if File.readlines(somefile).grep(/monitor/).size == 0
somefile.write("File Empty")
else
somefile.write("File Full.")
end

somefile.close

当我第一次运行它时,fileText.txt 是空的,所以程序会写入 "File Empty"。当我第二次运行它时,程序应该写成 "File Full",但文件仍然显示为 "File Empty"

if 语句应该检查文件是否为空,但我不知道它是否正常工作。我做错了什么?

EDIT - Problem Solved:

fname = "fileTest.txt"
somefile = File.open(fname, "a")

if File.zero?(somefile)
somefile.write("File Empty")
else
somefile.write("File Full.")
end

somefile.close

最佳答案

File.open(fname,"w") 中的“w”选项如果文件存在则将其截断,如果文件不存在则创建一个新文件——打开时始终为空这种模式。参见 here对于选项。

File.readlines 不需要文件对象,字符串(“path/to/filename.txt”),或者在这种情况下 fname 就可以了。

关于Ruby - 检查是否为空后无法写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31124611/

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