用法一
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。