当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia open用法及代码示例


用法一

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 的值,并且等效于设置以下布尔组:

模式说明关键词
rreadnone
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) 类似,只是通过模式字符串而不是关键字参数指定读取和写入标志。可能的模式字符串是:

模式说明关键词
rreadnone
wwritewrite = 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 返回的值。如果进程失败,或者进程尝试将任何内容打印到标准输出,则抛出错误。

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.open — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。