在网易云课堂上直接搜索:Julia教程 ,就可以找到,教程的全名是:Julia教程 从入门到进阶
这是国内第一个免费的完整的Julia视频教程,非常适合Julia的入门。有兴趣的朋友可以去学习一下。
教程链接:
Julia教程
在对文件的操作中,如果我们未指定文件的路径,则默认的路径为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c3piykXY-1592662419590)(https://raw.githubusercontent.com/Bounce00/pic/master/Julia%20course/Julia%20IO1.png)]
pwd()
命令可查看当前的工作路径,,如果想更换路径,使用cd(dir::String)
命令,若想跟换回原始路径,使用homedir()
命令s1 = readlines("sdy.txt")
s2 = open("sdy.txt","r")
line = readline(s2)
eof(s2)
position(s2)
read(s2,Char)
line = readline(s2)
read(s2,Int8)
close(s1)
在REPL中,可以查看open的用法,在open中,还可以调用函数
open(readline, "sdy.txt")
当然,也可以调用自定义的函数
readFunc(s::IOStream) = read(s, Char)
open(readFunc, "sdy.txt")
还可以像Python中的with open...as
的用法一样打开文件
open("sdy.txt","r") do stream
for line in eachline(stream)
println(line)
end
end
也可以将上述过程定义成函数再用open操作
function readFunc2(stream)
for line in eachline(stream)
println(line)
end
end
open(readFunc2, "sdy.txt")
write("wrFile1.txt", "Hello World")
open("wrFile2.txt","w") do f
for ch in 'a':'z'
write(f, ch)
end
write(f,'\n')
end
open函数中的参数模式定义如下
Mode | Description |
---|---|
r | read |
w | write, create, truncate |
a | write, create, append |
r+ | read, write |
w+ | read, write, create, truncate |
a+ | read, write, create, append |
io = open("wrFile3.txt","w")
write(io, "Write File...\n")
但这种读写文件的方式对矩阵操作支持不太好
mat = reshape(1:9, (3,3))
write("mat.txt", mat)
最好使用DelimitedFiles
包进行矩阵的读写操作
using DelimitedFiles
m = reshape(1:9, (3,3))
writedlm("number.txt", m, '\t')
cont = readdlm("number.txt")
除了txt格式外,Julia还可以对csv等格式,但Julia自带的数据序列化工具JLD2速度速度更快,扩平台,重点推荐。
写csv文件与操作普通文件类似,中间加个逗号就可以了。
using DelimitedFiles
data = rand(Int8,10,5)
writedlm("file1.csv", data, ',')
读文件时,我们可以使用DataFrames来读csv文件。
关于DataFrames我们将在科学计算一节中讲到。
using DataFrames
df = readtable("file1.csv")
也可以使用CSV package自带的函数读取
using CSV
df1 = CSV.read("file1.csv")
用CSV.read()读上来的数据也是DataFrame格式。
JLD2是JLD格式的改进,也是一种HDF5格式。
写文件
using JLD2
stri = "hello world"
fid = jldopen("jld_test.jld2","w")
write(fid, "stri", stri)
close(fid)
读文件
fid = jldopen("jld_test.jld2","r")
res = read(fid,"ss")
相当于在内存中创建一个IOStream
io = IOBuffer()
write(io, "Hello World!", " JuliaLang is great!")
采用take!
的方式将内容从IOBuffer中读出
String(take!(io))
如果在创建IOBuffer时就指定了里面的内容,则词IOBuffer为只读的。
io = IOBuffer("Hello World!")
write(io, "This is not writable.")
read(io, String)
关闭IOBuffer
close(io)
欢迎关注微信公众号:Quant_Times