2015-04-01 29 views
2

需要編寫一些文件,然後打開它讀取和寫入一行到另一個文件 - 所有這一切都在一個腳本中。 我的問題是,我:Lua需要讀取我剛纔在同一個程序中寫入的文件

  1. 打開文件1在讀取模式(文件1 = io.open( 「my_file.txt」, 「R」))

  2. 寫模式打開文件2(文件2 = io.open( 「my_changed_file.txt」, 「W」))

  3. 寫從文件1的改變的內容到file2

  4. 打開文件2(也嘗試作爲file3的= io.open打開(「my_changed_file .txt「,」r「)),並從中打印一些行,例如

我試了幾種方法,如文件2:沖水(),或文件2:關閉(),並重新打開後,我寫完了,但它總是返回nil,當我想打印一些行

file1=io.open("my_file.txt","r") 
file2=io.open("my_changed_file.txt","w") 

for line in file1:lines() do 
    file2:write(line.."changes") 
end 

file2:flush() 
file3=io.open("my_changed_file.txt","r") 
--write several lines to another file or something 
--(need to combine changed lanes from file2 and original lines from file1 based on my key) 

回答

3

我已經嘗試過您的腳本,只需對Lua 5.1,5.2和5.3進行較小的更改,並且它可以在所有這些版本中按預期工作。我的腳本如下,並有一個變化,可能是重要的:write不增加新的行print做,所以你可能需要將它自己添加,如果你想輸出爲不同的路線:

local file1=io.open("my_file.txt","r") 
local file2=io.open("my_changed_file.txt","w") 
for line in file1:lines() do 
    file2:write(line.."changes\n") 
end 
file2:close() 
local file3=io.open("my_changed_file.txt","r") 
print(file3) 
for line in file3:lines() do print(line) end 
相關問題