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
stream.
Examples
Read from a file
julia> fp = open("foo");
julia> print(readall(fp))
"bar"
Append to a file
julia> fp = open("foo","a");
julia> str = "baz";
julia> write(fp, str);
julia> close(fp);
julia> readall("foo")
"barbaz"
Repeat first line
julia> function f(file)
arr = readlines(file)
str = arr[1]
write(file, str)
end
f (generic function with 1 method)
julia> open(f, "numbers", "r+"); # file contains 1,2,3 in successive lines
julia> readall("numbers")
"1\n2\n3\n1\n"
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.
Arguments
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
.
Returns
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.