用法一
open(f::Function, args...; kwargs...)
将函数f
应用于open(args...; kwargs...)
的结果,并在完成后关闭生成的文件说明符。
例子
julia> open("myfile.txt", "w") do io
write(io, "Hello world!")
end;
julia> open(f->read(f, String), "myfile.txt")
"Hello world!"
julia> rm("myfile.txt")
用法二
open(filename::AbstractString; lock = true, keywords...) -> IOStream
以五个布尔关键字参数指定的模式打开文件:
关键词 | 说明 | 默认 |
---|---|---|
read | 开放阅读 | !write |
write | 开放写作 | truncate | append |
create | 如果不存在则创建 | !read & write | truncate | append |
truncate | 截断为零大小 | !read & write |
append | 寻求结束 | false |
未传递关键字时的默认设置是打开文件以只读方式。返回用于访问打开文件的流。
lock
关键字参数控制是否将锁定操作以实现安全的多线程访问。
Julia 1.5
lock
参数从 Julia 1.5 开始可用。
用法三
open(filename::AbstractString, [mode::AbstractString]; lock = true) -> IOStream
open 的替代语法,其中使用基于字符串的模式说明符而不是五个布尔值。 mode
的值对应于来自 fopen(3)
或 Perl open
的值,并且等效于设置以下布尔组:
模式 | 说明 | 关键词 |
---|---|---|
r | read | none |
w | 写入、创建、截断 | write = true |
a | 写入、创建、附加 | append = true |
r+ | 读,写 | read = true, write = true |
w+ | 读取、写入、创建、截断 | truncate = true, read = true |
a+ | 读取、写入、创建、附加 | append = true, read = true |
lock
关键字参数控制是否将锁定操作以实现安全的多线程访问。
例子
julia> io = open("myfile.txt", "w");
julia> write(io, "Hello world!");
julia> close(io);
julia> io = open("myfile.txt", "r");
julia> read(io, String)
"Hello world!"
julia> write(io, "This file is read only")
ERROR: ArgumentError: write failed, IOStream is not writeable
[...]
julia> close(io)
julia> io = open("myfile.txt", "a");
julia> write(io, "This stream is not read only")
28
julia> close(io)
julia> rm("myfile.txt")
Julia 1.5
lock
参数从 Julia 1.5 开始可用。
用法四
open(fd::OS_HANDLE) -> IO
获取一个原始文件说明符,将其包装在 Julia-aware IO 类型中,并获取 fd 句柄的所有权。调用open(Libc.dup(fd))
以避免原始句柄的所有权捕获。
警告
不要在系统其他部分已经拥有的句柄上调用它。
用法五
open(command, mode::AbstractString, stdio=devnull)
异步运行command
。与 open(command, stdio; read, write)
类似,只是通过模式字符串而不是关键字参数指定读取和写入标志。可能的模式字符串是:
模式 | 说明 | 关键词 |
---|---|---|
r | read | none |
w | write | write = true |
r+ | 读,写 | read = true, write = true |
w+ | 读,写 | read = true, write = true |
用法六
open(command, stdio=devnull; write::Bool = false, read::Bool = !write)
开始异步运行command
,并返回一个process::IO
对象。如果read
为真,则来自进程的读取来自进程的标准输出,而stdio
可选地指定进程的标准输入流。如果write
为真,则写入转到进程的标准输入,而stdio
可选地指定进程的标准输出流。进程的标准错误流连接到当前全局 stderr
。
用法七
open(f::Function, command, args...; kwargs...)
类似于 open(command, args...; kwargs...)
,但在生成的进程流上调用 f(stream)
,然后关闭输入流并等待进程完成。成功时返回 f
返回的值。如果进程失败,或者进程尝试将任何内容打印到标准输出,则抛出错误。
相关用法
- Julia ones用法及代码示例
- Julia oftype用法及代码示例
- Julia oneunit用法及代码示例
- Julia oftype()用法及代码示例
- Julia occursin用法及代码示例
- Julia one用法及代码示例
- Julia one()用法及代码示例
- Julia splice!用法及代码示例
- Julia @cfunction用法及代码示例
- Julia LibGit2.count用法及代码示例
- Julia LinearAlgebra.BLAS.dot用法及代码示例
- Julia break用法及代码示例
- Julia sizeof()用法及代码示例
- Julia :<=用法及代码示例
- Julia zero()用法及代码示例
- Julia rem用法及代码示例
- Julia ...用法及代码示例
- Julia setfield()用法及代码示例
- Julia rpad用法及代码示例
- Julia sort用法及代码示例
- Julia tail用法及代码示例
- Julia cis方法用法及代码示例
- Julia SparseArrays.spdiagm用法及代码示例
- Julia Distributed.procs方法用法及代码示例
- Julia Filesystem.mkpath用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.open — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。