How To | Write files using scripting

Learn the basics of writing files using scripting and discover the advantages it can bring to your workflow.

Updated at June 8th, 2023

Your engagement helps us create the content you need. Click here to review this article.

Table of Contents


There are two primary methods of writing (and reading) files via scripted methods: a Simple Method and a Complete I/O Model:


To learn how to read files using scripting, see the related article "How To | Read files using scripting"

--Writing a File, Method 1
--The "Direct Way", Simple Model
Info = "Whatever I want\r\n"
io.output("design/MyTestFile")  --Create the file for writing to 
io.write(Info)                  --Write to the File
io.write("More stuff\r\n")        --Append more
io.close()                      --Close the file

--Writing a File, Method 2
  --The Complete I/O Model
  --use for advanced file manipulation, reading/writing to several files
Info = "A different method\r\n"
myfile = ("design/MyTestFile2","w+")
  --r for Read-Only of existing file
  --w for Create/Write new file
  --a for Append Mode, this is for Writing only
  --r+ for Read/Write existing file, will overwrite existing content
  --w+, same as "w", except reading is also allowed
  --a+, same as "a", except reading is also allowed
if myfile~=nil then
 filedata = myfile:write(Info)
 filedata = myfile:write("Adding some more\r\n")
  print("File #2 has been written")
  io.close(myfile)              --Close file after use
  --for certain argument usages a nil is returned if file does not exist

--The locations "design/" and "media/" are acceptable.
--The "media/" folder is generally for all media files, and the "design/" folder
--is where uncompressed design configuration files reside.
--Files in "design/" can be viewed at http://[ip of core]/designs/current_design