对文本文件,readlines(filename)
函数根据输入的文件名读入文件的各行为字符串数组,
每个元素是一行,
缺省行为会读入换行符但结果字符串不包含换行符,
加选项keep=true
可以保留换行符。
用read(filename, String)
将整个文件读入为一个长字符串。
用fh = open(filename)
打开指定的文件用于读取,
这里fh
称为一个文件句柄。
读取如readline(fh)
,
缺省行为会读入换行符但结果字符串不包含换行符,
加选项keep=true
可以保留换行符。
用close(fh)
关闭fh
对应的文件。
很大的文件可以每次读入一行进行处理,框架如:
open(filename) do io
line = readline(io)
process(line)
end
用fh = open(filename, "w")
打开指定的文件用于输出,
写入如println(fh, "x = ", x)
。
对于字符串s,
也可以用write(fh, s)
写入。
结束写入后用close(fh)
关闭输出文件。
6.2 文件和目录信息
参考:
- https://docs.julialang.org/en/v1/base/file/
文件保存在目录(directory)中。
用pwd()
返回当前的工作目录,
不给定具体路径的文件名默认在工作目录中。
用cd(path)
设定path
为当前工作目录。
因为不同操作系统的文件路径写法不同,
所以尽可能使用Julia的函数来对路径进行操作。
用abspath(filename)
求一个文件的绝对路径。
用dirname(filename)
求一个文件所在的目录。
用joinpath()
将目录与文件连接成一个完整路径。
用dirname(path)
获取文件路径的目录部分,
用basename(path)
获取文件路径除去目录的部分。
可以用dirname(@__FILE__)
获取正在运行的源程序文件所在的目录。
设这个源文件同级有一个data
子目录,
其中有pat.csv
数据文件,
可以用
root = dirname(@__FILE__)
fd = joinpath(root, "data", "pat.csv")
获得文件的全路径,保存在变量fd
中。
用ispath(filename)
判断每个文件或者目录是否存在。
用isdir(filename)
判断某个路径是否目录,
用isfile(filename)
判断某个路径是否文件。
用readdir(path)
返回指定目录的文件和子目录列表,
无path
时对应当前工作目录。
walkdir(path)
提供了对一个目录及其中的子目录遍历的功能,
遍历时提供了当前目录、其中的子目录列表、其中的文件列表。
显示一个目录下的所有文件和子目录的样例程序如下:
for (root, dirs, files) in walkdir(".")
println("正在显示$(root)内容---子目录:")
for dir in dirs
println(joinpath(root, dir)) # path to directories
end
println("正在显示$(root)内容---文件:")
for file in files
println(joinpath(root, file)) # path to files
end
end
如果不用内置的walkdir
函数,
可以递归调用如下:
function mywalk(dir)
println("正在显示$(dir)内容:")
## 先显示所有文件
for name in readdir(dir)
path = joinpath(dir, name)
if isfile(path)
println(path)
end
end
## 再深入每个子目录
for name in readdir(dir)
path = joinpath(dir, name)
if isdir(path)
mywalk(path)
end
end
end
mywalk(".")
韭菜热线原创版权所有,发布者:风生水起,转载请注明出处:https://www.9crx.com/75095.html