前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Julia编程12:文件系统

Julia编程12:文件系统

原创
作者头像
生信探索
发布2023-05-29 16:08:40
2731
发布2023-05-29 16:08:40
举报
文章被收录于专栏:生信探索生信探索

查看与切换目录

代码语言:text
复制
# 当前目录
pwd()
# Julia获取正在运行的源程序文件所在的目录
dirname(@__FILE__) == "/Users/victor/"
# 切换目录
cd("/Users/victor/data")

路径处理

  • 路径拼接
代码语言:Python
复制
# 将目录与文件连接成一个完整路径
joinpath(dirname(@__FILE__), "data", "pkg.csv") == "/Users/victor/data/pkg.csv"
  • 绝对路径

求一个文件的绝对路径, 当前文件夹下有一个名为pkg.csv的文件

代码语言:text
复制
abspath("pkg.csv") == "/Users/victor/data/pkg.csv" 
  • basename
代码语言:text
复制
basename("/Users/victor/data/pkg.csv") == "pkg.csv" 
  • dirname
代码语言:text
复制
dirname("/Users/victor/data/pkg.csv") == "/Users/victor/data" 
  • 路径标准化

删除...

代码语言:text
复制
normpath("/Users/victor/data/../pkg.csv")=="/Users/victor/pkg.csv"
  • 路径分割

.分割

代码语言:text
复制
splitext("/Users/victor/data/pkg.csv")
# ("/Users/victor/data/pkg", ".csv")
splitext("/Users/victor/data")
# ("/Users/victor/data", "")

/分割

代码语言:text
复制
splitpath("/Users/victor/data/pkg.csv")
# "/"
# "Users"
# "victor"
# "data"
# "pkg.csv"

判断

代码语言:Python
复制
ispath(filename) # 是否存在
isdir(filename) # 判断是否是目录
isfile(filename) # 判断是否是文件
islink(filename) # 判断是否是链接
isabspath(filename) # 判断是否是绝对路径

遍历

代码语言:text
复制
cd("data")
readdir() # 返回指定目录的文件和子目录列表
# 4-element Vector{String}:
#  "pkgs copy 2.csv"
#  "pkgs copy 3.csv"
#  "pkgs copy.csv"
#  "pkgs.csv"

readdir(join=true) #返回绝对路径
# 4-element Vector{String}:
#  "/Users/victor/data/pkgs copy 2.csv"
#  "/Users/victor/data/pkgs copy 3.csv"
#  "/Users/victor/data/pkgs copy.csv"
#  "/Users/victor/data/pkgs.csv"

cd("../")
pwd()=="/Users/victor"
readdir("data")
# 4-element Vector{String}:
#  "pkgs copy 2.csv"
#  "pkgs copy 3.csv"
#  "pkgs copy.csv"
#  "pkgs.csv"

readdir(abspath("data"), join=true)
#  4-element Vector{String}:
#  "/Users/victor/data/pkgs copy 2.csv"
#  "/Users/victor/data/pkgs copy 3.csv"
#  "/Users/victor/data/pkgs copy.csv"
#  "/Users/victor/data/pkgs.csv"

walkdir(path) # 返回一个可迭代对象,包括当前目录、其中的子目录列表、其中的文件列表。
for (root, dirs, files) in walkdir("data")
    println("Directories in $root")
    for dir in dirs
        println(joinpath(root, dir)) # path to directories
    end
    println("Files in $root")
    for file in files
        println(joinpath(root, file)) # path to files
    end
end
# Directories in data
# Files in data
# data/pkgs copy 2.csv
# data/pkgs copy 3.csv
# data/pkgs copy.csv
# data/pkgs.csv

新建

  • 新建目录
代码语言:text
复制
# 如果目录已经存在会报错
mkdir("newdir/newdir2")

# 如果目录已经存在不会报错
mkpath("newdir/newdir2")
  • 新建文件
代码语言:text
复制
touch("newfile.csv")

链接

  • 硬链接

把pkg.csv链接到上层目录,上层目录不能存在名为pkg.csv的文件否则报错。

代码语言:text
复制
hardlink("/Users/victor/data/pkg.csv", "/Users/victor/pkg.csv")
  • 软链接
代码语言:text
复制
symlink("/Users/victor/data/pkg.csv", "/Users/victor/pkg.csv")

复制与移动

如果目标已经存在,force=true会覆盖

代码语言:text
复制
cp("/Users/victor/data/pkg.csv", "/Users/victor/pkg.csv";force=true)
mv("/Users/victor/data/pkg.csv", "/Users/victor/pkg.csv";force=true)

删除

代码语言:text
复制
# 删除文件
rm("/Users/victor/data/pkg.csv")
# 删除目录
rm("/Users/victor/data", recursive=true)
# force=true,不存在的文件不会报错
rm("/Users/victor/data/no.csv", force=true)

下载

把文件下载到/Users/victor/data目录下

代码语言:text
复制
download("", "/Users/victor/data")

Reference

代码语言:text
复制
https://docs.julialang.org/en/v1/base/file/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查看与切换目录
  • 路径处理
  • 判断
  • 遍历
  • 新建
  • 链接
  • 复制与移动
  • 删除
  • 下载
  • Reference
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档