python 获取exception 名字

本文介绍了一种在Python中处理未知具体异常的方法。通过使用通用的异常捕获机制,可以在不清楚异常具体名称的情况下,获取并打印异常的类型,从而帮助开发者定位问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【1】 前提:在自己不知道某个具体的异常名字,但是却要捕捉具体的异常。

try:
    """error code"""
    ……
except Exception, exc:
    print exc.__class__
    ……
### 修改图片文件名的 Python 实现 在 Python 中,可以通过 `os` 模块提供的 `rename()` 方法来修改文件名称。为了批量重命名图片文件,通常需要结合 `os.listdir()` 来获取目标文件夹内的所有文件列表,并通过条件过滤筛选出符合条件的图片文件。 以下是一个完整的示例程序,用于批量重命名指定路径下的 `.png` 图片文件: #### 完整代码示例 ```python import os class BatchImageRenamer: """ 批量重命名指定文件夹中的图片文件。 支持自定义起始编号和前缀。 """ def __init__(self, path, prefix="image_", start_index=1): """ 初始化类实例。 参数: path (str): 需要处理的文件夹路径。 prefix (str): 新文件名的前缀,默认为 "image_"。 start_index (int): 起始索引值,默认从 1 开始。 """ self.path = path self.prefix = prefix self.start_index = start_index def rename_images(self): """ 对文件夹中的图片文件进行批量重命名。 只支持 .png 格式的图片文件。 """ file_list = os.listdir(self.path) # 获取文件夹下所有文件 total_files = len(file_list) current_index = self.start_index for file_name in file_list: if file_name.lower().endswith(".png"): # 过滤仅保留 PNG 文件 old_path = os.path.join(os.path.abspath(self.path), file_name) new_file_name = f"{self.prefix}{current_index}.png" new_path = os.path.join(os.path.abspath(self.path), new_file_name) try: os.rename(old_path, new_path) # 执行重命名操作 print(f"已将 {old_path} 重命名为 {new_path}") current_index += 1 except Exception as e: print(f"无法重命名文件 {old_path}: {e}") print(f"共重命名了 {current_index - self.start_index} 个文件") if __name__ == "__main__": folder_path = "./images/" # 替换为目标文件夹路径 renamer = BatchImageRenamer(folder_path, prefix="photo_", start_index=100) renamer.rename_images() ``` --- #### 关键点解析 1. **初始化参数** 类的构造函数接受三个主要参数:目标文件夹路径 (`path`)、新文件名前缀 (`prefix`) 和起始索引值 (`start_index`)。这使得用户可以根据需求灵活调整配置[^1]。 2. **文件过滤** 使用 `file_name.lower().endswith(".png")` 确保只对扩展名为 `.png` 的文件执行重命名操作。如果需要支持其他格式(如 `.jpg`, `.jpeg`),可以在该条件下加入更多分支逻辑[^4]。 3. **绝对路径拼接** 利用 `os.path.join()` 将基础路径与相对文件名组合成完整路径字符串,从而避免因斜杠方向不一致而导致错误[^3]。 4. **异常处理** 在调用 `os.rename()` 时增加了异常捕捉机制,防止某些特殊情况下(比如重复文件名冲突)导致整个脚本崩溃[^4]。 5. **日志记录** 每次成功或失败的操作都会打印一条消息到标准输出流,方便调试和监控进度[^1]。 --- ### 注意事项 - **权限问题**: 如果目标目录位于受保护区域(例如系统盘根目录),可能需要提升当前用户的管理员权限才能顺利完成写入或删除动作。 - **覆盖风险**: 当新的文件名已经存在于同一级目录下时会发生替换行为,请提前做好备份以防丢失原始数据。 - **跨平台兼容性**: 上述代码经过测试适用于主流操作系统环境(Windows/Linux/macOS)。但由于不同 OS 下默认编码方式有所区别,在实际部署过程中仍需留意字符集转换带来的影响[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值