我已使用r+
模式打开文件。我已对它进行了一些更改,我想删除从X开始到文件末尾的内容。
不幸的是我不知道如何做到这一点。我一直在浏览文档,但没有提及。
我不想将:space:
写入文件,因此它看起来像#34;就像它被清除一样,我也希望它变得更小。
在这种情况下,不能使用w
打开文件。
答案 0 :(得分:2)
以<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-******-1']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
模式打开文件会保留当前内容;结果,我认为没有办法使用Lua中可用的功能截断文件的其余部分。这个SO answer表示可以使用r+
reopen
来完成,但由于您表示无法打开它进行写作,我认为没有做你想做的事。
对此脚本进行测试会产生w+
(其中new contentext
是早期内容的剩余部分):
ext
答案 1 :(得分:0)
根据我的经验,我发现在 Lua 中截断文件的唯一方法是将内容写入"w+"
模式的辅助文件,然后重命名辅助文件覆盖原始文件。当然,您可能希望谨慎使用此方法,具体取决于文件的大小。
在此示例中,"path"
是原始文件的路径
local file, err = io.open( path + ".tmp", "w+" )
if not file then return end
file:write( truncated_data )
file:close( )
assert( os.rename( path + ".tmp", path ) )