#os标准库
import os # 当前 Python 运行所在的环境 posix,nt,java print(os.name) # nt # os.getcwd()获取当前工作路径 print(os.getcwd()) dir = "./files/foo/bar/bar2" file = os.path.join(dir, "c.txt") # os.path.join() 可以将多个传入路径组合为一个路径 print(file) # 获得绝对路径 path_abs = os.path.abspath(file) print(path_abs) # 判断传入路径是否是绝对路径 print(os.path.isabs(path_abs)) # 获得路径中包含的文件名和目录 print(os.path.basename(file)) print(os.path.dirname(file)) # 将路径分割成文件名和目录两个部分,放在一个tuple中返回 print(os.path.split(file)) # 检测目录、文件是否存在 print(os.path.exists(file)) print(os.path.exists(dir)) # 路径是否指向常规文件、目录文件 print(os.path.isfile(file)) print(os.path.isdir(dir)) # 查询文件大小、上一次读取的时间、上一次修改的时间 print(os.path.getsize(file)) print(os.path.getatime(file)) print(os.path.getmtime(file)) # 去除路径path中的冗余 print(os.path.normpath(os.path.join(dir, "../../"))) # 查询多个路径的共同部分 print(os.path.commonprefix([dir, file])) # os.walk函数需要传入一个路径作为top参数,函数的作用是在以top为根节点的目录树中游走, # 对树中的每个目录生成一个由(dirpath, dirnames, filenames)三项组成的三元组 for item in os.walk("."): print(item) # os.listdir列出(当前)目录下的全部路径(及文件) def get_filelists(file_dir="."): list_directory = os.listdir(file_dir) filelists = [] for directory in list_directory: if os.path.isfile(directory): filelists.append(directory) return filelists # print(get_filelists()) # os.makedirs递归创建一个路径,如果指定路径已存在,则会抛出FileExistsError异常 try: os.makedirs(dir) except FileExistsError: print("文件夹已存在") else: print("创建成功") # os.rename()函数的作用是将文件或路径重命名,一般调用格式为os.rename(src, dst) try: os.rename("files/a.txt", "files/b.txt") os.rename("files/b.txt", os.path.join(dir, "c.txt")) except FileNotFoundError: print("源文件不存在") except FileExistsError: print("目标文件已经存在") except OSError: print("没有权限") else: print("重命名成功") # os.remove() 删除文件 os.removedirs 递归删除文件路径 try: if os.path.isfile(dir): os.remove(dir) print("%s 是一个文件" % dir) else: os.removedirs(dir) print("%s 是一个路径" % dir) except OSError: print("目錄不是空的") else: print("删除成功") # os.chdir是切换当前工作路径为指定路径 os.chdir("./files")
#pathlib库
from pathlib import Path # 文件当前所在目录 path_curr = Path.cwd() print(path_curr) # 用户主目录 print(Path.home()) # 目录拼接 print(Path.cwd() / "files") # 创建、删除目录 (Path.cwd() / "files/foo2").mkdir() # 单层目录 (Path.cwd() / "files/foo2").rmdir() # 单层目录 file = Path.cwd() / "files/a.txt" # 读写文件 with file.open("w") as f: # 文件不存在即创建后打开。 f.write("python") # 写入 python 字符串。 print(file.read_text()) # python file.write_text(data="php") print(file.read_text()) # php str2byte = bytes("python", encoding="utf-8") file.write_bytes(str2byte) print(file.read_bytes()) # b'python' print(file.read_text()) # python # 获取文件所在目录的不同部分 ph = Path("files/a.txt").resolve() # 返回文件的完整路径 print(ph) # 文件的完整路径 print(ph.name) #:a.txt 文件完整名称(文件名+后缀名) print(ph.stem) # a 文件名 print(ph.suffix) # txt 文件后缀名 print(ph.parent) # 文件所在的文件夹名 print(ph.anchor) # 文件所在的盘符 # 判断文件、路径是否存在 print(ph.exists()) # True print(ph.is_dir()) # False print(ph.is_file()) # True # 文件统计以及匹配查找 for val in (Path.cwd() / "files").glob("*.txt"): # 返回直接目录下所有与 pattern 匹配的文件,返回生成器类型 print(val) for val in (Path.cwd() / "files").rglob("*.txt"): # 返回递归目录下所有与 pattern 匹配的文件,返回生成器类型 print(val) for val in (Path.cwd() / "files").iterdir(): # 返回直接目录下所有文件及目录,返回生成器类型 print(val) print(Path.cwd() / "files/")
标签:files,pathlib,dir,file,print,path,os,python3 From: https://www.cnblogs.com/caroline2016/p/17688104.html