1. 文件打开模式
(1)三种基本模式:r、w、a
r 只读
w 删除原文,只写
a 保留原文(追加),只写
(2)附加后缀
b 表示二进制读写
+ 表示额外赋予读写权限
U 表示读取的换行全部改成\n
(3)三种模式的不同
无文件时: r 报错,w、a 新建
是否清除原文:r 、a 否,w 是
初始读取位置:r、w 开头,a 结尾
2. 文件操作
(1)列出文件
结果列表 = ls( 文件全路径 )
(2)创建文件 or 文件夹
mk( 文件全路径 )
(3)删除文件 or 文件夹
rm( 文件全路径 )
import os
import shutil
# region fileSystem
def exist(文件全路径):
return os.path.exists(文件全路径)
def isdir(文件全路径):
return os.path.isdir(文件全路径)
def ls(文件全路径, 选项="", 是否包含前缀=False):
选项 = 选项.lower()
if exist(文件全路径):
if isdir(文件全路径):
if ("p" in 选项) or ("r" in 选项):
return getDeepFilePaths(文件全路径, "*")
else:
if 是否包含前缀:
return stream(os.listdir(文件全路径))\
.map(lambda i: f"{文件全路径}/{i}").collect()
else:
return os.listdir(文件全路径)
else:
return [文件全路径];
else:
return []
def mkdir(文件全路径, 选项="-p"):
选项 = 选项.lower()
if not exist(文件全路径):
if ("p" in 选项) or ("r" in 选项):
os.makedirs(文件全路径)
else:
os.mkdir(文件全路径)
def mk(文件全路径, 选项="-p", 删除原文件 = False):
选项 = 选项.lower()
if exist(文件全路径):
if 删除原文件:
rm(文件全路径)
else:
return
文件后缀 = get文件后缀(文件全路径)
if not 文件后缀:
mkdir(文件全路径, 选项)
else:
所在目录 = get文件所在目录(文件全路径)
if 所在目录 and (not exist(所在目录)):
mk(所在目录, 选项)
with open(文件全路径,"a"):
pass
def rm(文件全路径, 选项="-rf"):
if exist(文件全路径):
if isdir(文件全路径):
if ("p" in 选项) or ("r" in 选项):
shutil.rmtree(文件全路径)
else:
try:
os.rmdir(文件全路径)
except:
stream(ls(文件全路径)).filter(lambda i: not isdir(i)) \
.forEach(lambda i: os.remove(i))
else:
os.remove(文件全路径)
def get文件后缀(文件全路径):
return os.path.splitext(文件全路径)[1]
def get文件名(文件全路径):
return os.path.basename(文件全路径)
def get文件所在目录(文件全路径):
return os.path.dirname(文件全路径)
def basename(文件全路径):
return get文件名(文件全路径)
def dirname(文件全路径):
return get文件所在目录(文件全路径)
# endregion fileSystem
缺失的工具类部分,删掉也无伤大雅