rename
可以更改文件名
p = Path("data/old_name.txt")
new_p = p.rename("data/new_name.txt")
也可以更改folder名字
if (base_dir/old).exists(): (base_dir/old).rename(base_dir/new)
import
from pathlib import Path
from fastcore.xtras import *
ls
fastcore 里添加的功能,可以返回一个L list
Path('data').ls()
expanduser
path里面的‘~’不会自动识别,需要在后面加上expanduser()
Path('~/data').expanduser().ls()
mkdir
用Path定义一个具体的路径,然后mkdir(parents=True,exist_ok=True)
parents=True只在深的路径需要,如果只是一个创建一个深度的子目录(上面的目录都存在)
Path('a').mkdir(exist_ok=True)
如果存在a/b/c/d,除了d以外,需要创建多个目录a/b/c,那么需要parents=True (注意parents是负数)
Path('a/b/c').mkdir(parents=True,exist_ok=True)
exist_ok如果不设置True,如果同目录下有同名的folder,会报错。
path_figname = Path(f'{save_folder}/path_fig/{protein}.png')
path_figname.parent.mkdir(parents=True,exist_ok=True)
设定具体的Path
直接用‘/‘隔开
Path('folder')/f"{fname}.ext"
glob(pattern)
目录下查看
Path('folder').glob("*_summary_confidences.json")
返回generator
rglob(pattern)
目录&它的子目录下查看
Path('folder').rglob("*_summary_confidences.json") #会在folder下的子目录查看
glob和rglob会返回generator,可用[f for f in generator]生成list,或者用for loop查看
files = Path(base_directory).rglob("*_summary_confidences.json")
for f in files: break
print(f)
name
查看文件名(包括extension)
f.name
stem
查看具体文件名称(不包括extension)
f.stem
[f.stem for f in files] #生成有文件名称list