加速度记录在result.txt中,但我想在结果中只记录1个结果。
我想将结果记录在result_1.txt中,然后是result_2.txt,result_3.txt
如何在1个txt文件中记录1个结果?
这是我的代码。
local filename = "result.txt"
local file = io.open(filename, "a")
for i=1, 1000 do
sim:stepForward()
local p = ship.rb:getAcceleration():z()
file:write(string.format("%d\n",p))
end
file:close()
答案 0 :(得分:2)
您需要为要输出的每个文件使用不同的文件处理程序。
为简单起见,假设文件名以result_1.txt
开头:
for i = 1, 1000 do
local filename = "result_" + tostring(i) + ".txt"
local file = io.open(filename, "a")
-- write to file
file:close()
end
答案 1 :(得分:0)
要将每个文件保存到其他文件,您需要单独打开和关闭每个文件。可以编写一个函数来为您执行此操作。
saveData = function ( data, path )
local f = io.open(path, 'a')
f:write(data)
f:close()
end
然后你可以打电话
saveData(string.format("%d\n",p), 'results_1.txt')
现在要按升序排列它们,我们只需使用循环并将数字与字符串连接起来。
for i = 1, 10, 1 do
local path = 'results_'..i..'.txt'
saveData(<insert data here>, path)
end
或者,我们可以将所有数据保存在表格中。
data = { <insert data here>, ... }
然后将表格中的所有数据保存到各自的文件中。
for i, v in ipairs(data) do
local path = 'results_'..i..'.txt'
saveData(v, path)
end