可能是一个简单的问题,但我需要删除特定行号后的文件内容?所以我不想保留第一行例如5行并删除文件的其余内容。我一直在寻找一段时间,找不到一种方法来做到这一点,我是一名iOS开发人员,所以Ruby不是我非常熟悉的语言。在ruby中删除特定行后的文件内容
3
A
回答
2
我不知道从文件中删除任何方法,所以我第一个想法是读取文件,然后回写。是这样的:
path = '/path/to/thefile'
start_line = 0
end_line = 4
File.write(path, File.readlines(path)[start_line..end_line].join)
File#readlines
读取文件,并返回字符串,其中每个元素是文件中的一个线的阵列。然后你可以使用subscript operator with a range作为你想要的行
这对于大文件来说不会很高效,所以你可能想要优化,如果这是你将要做的事情。
5
这就是所谓的truncate。该截断方法需要之后,一切都被切断字节位置 - 与File.pos
方法提供了这一点:
File.open("test.csv", "r+") do |f|
f.each_line.take(5)
f.truncate(f.pos)
end
从File.open的“R +”模式下读写,而无需现有文件截断至零大小,就像“w +”一样。
File.open的块形式确保块在文件结束时关闭。
相关问题
- 1. 从文件中删除特定的行
- 2. 如何删除文本文件中奇数索引行上的特定内容
- 3. 清除特定行中的内容vba
- 4. 删除python中文件中特定行的特定字母
- 5. Powershell:获取文件夹的内容,删除特定文件,验证文件是否被删除/存在
- 6. java FileWriter,定期删除文件内容
- 7. C++清除特定位置后文件的内容
- 8. 如何删除docx4j中特定内容的行
- 9. 从备注字段的内容中删除特定行
- 10. 如何从Ruby on Rails的文本文件中删除特定的行?
- 11. 删除文件中的行 - Ruby
- 12. 删除文件中的所有内容
- 13. 删除特定字符后的所有内容
- 14. 如何删除特定字符或符号后的内容
- 15. 在php中删除特定文件
- 16. 在文件中的特定字符串后附加内容?
- 17. 删除特定行从文件
- 18. 重命名Powershell中的文件删除“_”后的所有内容
- 19. 在Python中删除文件中的特定行
- 20. 如何删除Ruby中的最后一行文件?
- 21. 只在特定行中替换文件中的内容
- 22. 删除文件中的特定单词
- 23. 从Java中的文本文件中删除特定行
- 24. 从文本文件中删除包含特定文本的行
- 25. 如何使用xpath删除特定文本后的所有内容
- 26. 删除文件夹内的所有文件,但删除最后?
- 27. Crystal Reports在最后一次出现特定字符后删除所有内容
- 28. 文件Ruby的空行不会删除
- 29. 使用sed从文本文件中删除特定的行号?
- 30. Python,删除文件中的特定长行文本