open(command::Cmd, mod::AbstractString="r", s

..  open(command, mode::AbstractString="r", stdio=DevNull)

Start running ``command`` asynchronously, and return a tuple
``(stream,process)``.  If ``mode`` is ``"r"``, then ``stream``
reads from the process's standard output and ``stdio`` optionally
specifies the process's standard input stream.  If ``mode`` is
``"w"``, then ``stream`` writes to the process's standard input
and ``stdio`` optionally specifies the process's standard output


Read from a file

julia> fp = open("foo");
julia> print(readall(fp))

Append to a file

julia> fp = open("foo","a");
julia> str = "baz";
julia> write(fp, str);
julia> close(fp);
julia> readall("foo")

Repeat first line

julia> function f(file)
            arr = readlines(file)
            str = arr[1]
            write(file, str)
f (generic function with 1 method)
julia> open(f, "numbers", "r+");    # file contains 1,2,3 in successive lines
julia> readall("numbers")

open(file_name, [read, write, create, truncate, append]) -> IOStream

Open a file in a mode specified by five boolean arguments. The default is to open files for reading only. Returns a stream for accessing the file.


  • file_name: The name or path of the file to be opened.
  • read: A boolean indicating whether the file should be opened for reading (true) or not (false). Default: true.
  • write: A boolean indicating whether the file should be opened for writing (true) or not (false). Default: false.
  • create: A boolean indicating whether the file should be created if it doesn't exist (true) or not (false). Default: false.
  • truncate: A boolean indicating whether the file should be truncated (contents erased) when opened (true) or not (false). Default: false.
  • append: A boolean indicating whether new data should be appended to the end of the file (true) or not (false). Default: false.


  • IOStream: A stream object that provides access to the file.
# Open a file for reading
file = open("data.txt")

# Open a file for writing (if exists, truncate its contents)
file = open("output.txt", write=true, truncate=true)

# Open a file for both reading and writing
file = open("log.txt", read=true, write=true)

# Open a file in append mode
file = open("data.txt", write=true, append=true)

# Open a file with all permissions
file = open("file.txt", read=true, write=true, create=true, truncate=true, append=true)

Common mistake example:

# Incorrect usage of `open`
file = open("data.txt", true, false, false, false, false)
# ERROR: MethodError: no method matching open(::String, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool)

In this example, the boolean arguments are provided without specifying their corresponding names. Always use named arguments (read=true, write=true, etc.) when calling the open function to avoid such errors.

See Also

deserialize, eachline, eof, fd, flush, IOBuffer, ismarked, isopen, isreadonly, mark, nb_available, open, pipeline, position, read, read!, readavailable, readbytes, readbytes!, readline, redirect_stderr, redirect_stdin, reset, seek, seekend, seekstart, serialize, skip, skipchars, TextDisplay, unmark, write, writemime,

User Contributed Notes

Add a Note

The format of note supported is markdown, use triple backtick to start and end a code block.

*Required Field

Checking you are not a robot: