工作中经常需要整理和移动大量文件或文件夹结构重构等场景,本文记录相关python常用语法。方便快速编写脚本加速办公效率。指定路径下的遍历操作
只对路径下的一级遍历
import os# 指定要遍历的目录路径folder_path = r"[folder]" # 替换为你要遍历的文件夹路径# 使用 os.listdir() 列出目录下的所有文件和子目录for item in os.listdir(folder_path): item_path = os.path.join(folder_path, item) # 构建完整的路径 if os.path.isfile(item_path): print(f"当前路径指向是文件: {item_path}") elif os.path.isdir(item_path): print(f"当前路径指向是目录: {item_path}") else: print(f"其他: {item_path}")
整个文件夹下所有文件遍历
import os# 指定要遍历的目录路径folder_path = r"[folder]" # 替换为你要遍历的文件夹路径for root, dirs, files in os.walk(folder_path): print(f"当前目录: {root}") print("子目录: ", dirs) print("文件: ", files) print("\n")
判断目录是否存在,不存在则创建
if not os.path.exists([folder]): os.makedirs(temp_path)
获取文件名和后缀
# 返回文件名带后缀os.path.basename([path])# 返回[文件名字,后缀]列表os.path.splitext(os.path.basename([path]))
获取目录最后一级名称
last_folder_name = os.path.basename([path])
获取目录上一级目录
pre_folder=os.path.dirname([path])
创建文本文件
with open([path], 'a',encoding='utf-8') as file: # 写入数据 file.write(f"哈哈哈哈 \n")"""open()函数常见模式 'r':只读模式,如果文件不存在则抛出异常。 'w':写入模式,如果文件不存在则创建,如果文件已存在则覆盖原有内容。 'a':追加模式,如果文件不存在则创建,如果文件已存在则在末尾追加内容。 'x':独占写入模式,如果文件已存在则抛出异常。 'b':二进制模式,用于读取或写入二进制文件。 'U' 或 'rU':以读方式打开,同时提供通用换行符支持。还可以通过组合这些模式来使用,如'r+'表示读写模式,'w+'表示写后读模式等。"""with open([path], 'r+',encoding='utf-8') as file: file.truncate(0) # 清空文件内容
读取json文件数据
withopen('arg.json', 'r') asfile: # json文件中的数据 json_data = json.load(file) # 具体属性值 attr = json_data["attr"]
删除文件/文件夹
删除文件
import os# 指定要删除的文件路径file_path = [path] # 替换为你要删除的文件路径# 检查文件是否存在if os.path.exists(file_path): # 如果文件存在,使用 os.remove() 删除文件 os.remove(file_path) print(f"{file_path} 文件已被删除")else: print(f"文件 {file_path} 不存在")
删除文件夹(当前的文件夹也会被删除)
import shutil# 指定要删除的文件夹路径folder_path = [folder] # 替换为你要删除的文件夹路径# 使用 shutil.rmtree() 删除文件夹及其内容 (当前文件夹也会被删除)shutil.rmtree(folder_path)print(f"{folder_path} 文件夹及其内容已被删除")
清空某个文件夹
import osimport shutildef delete_files_and_folders(folder): """ 清空文件夹 :param folder: 文件夹路径 :return: """ for root, dirs, files in os.walk(folder, topdown=False): for name in files: file_path = os.path.join(root, name) os.remove(file_path) print(f"文件 {file_path} 已被删除") for name in dirs: folder_path = os.path.join(root, name) shutil.rmtree(folder_path) print(f"文件夹 {folder_path} 及其内容已被删除")delete_files_and_folders(target_folder)
控制台小工具集合方案
""" 目的:整合多个实用方法,通过控制台进行方法快速调用并实现功能"""def case_a(): print("Case A")def case_b(): print("Case B")def case_c(): print("Case C")# 拓展...def switch_case(value): switch_table = { '1': case_a, '2': case_b, '3': case_c, # 拓展... } return switch_table.get(value, lambda: print("!!!请输入有效操作!!!"))()if __name__ == "__main__": while True: print("--------------------请输入操作--------------------") print("1. add1") print("2. add2") print("3. add3") # 拓展... print("0. 退出") print("------------------------------------------------") key = input("请输入操作序号:") if key == "0": break switch_case(key)
汉字转拼音
库:pip install pypinyin
Style.NORMAL:表示不带声调的拼音
Style.TONE:表示带有数字声调的拼音
Style.TONE2:表示带有声调数字的拼音
Style.TONE3:表示带有声调点的拼音
def chinese_to_pinyin(text, style=Style.NORMAL): return ''.join([y[0] for y in pinyin(text, style=style)])