當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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