python报错记录

部署运行你感兴趣的模型镜像

报错一UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 48: invalid start byte

报错信息:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/IPython/core/interactiveshell.py", line 3550, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-af69039d001f>", line 1, in <module>
    runfile('/media/pi/Lexar3/python_test/uart_test.py', wdir='/media/pi/Lexar3/python_test')
  File "/home/pi/Downloads/pycharm-2024.1/plugins/python/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/Downloads/pycharm-2024.1/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 13, in execfile
    contents = stream.read()
               ^^^^^^^^^^^^^
  File "<frozen codecs>", line 322, in decode
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 48: invalid start byte

报错原因:

方法一:检查文件的编码方式

  1. 打开文件,确认其编码方式。可以使用文本编辑器如Notepad++,Sublime Text,或者其他支持显示文件编码的工具。
  2. 如果文件不是UTF-8编码,可以将其转换为UTF-8。大多数文本编辑器都支持编码转换。

方法二:在代码中指定文件的编码方式

如果你知道文件的编码方式,可以在读取文件时指定编码。修改你的脚本,添加encoding参数。例如,如果文件是使用ISO-8859-1编码的,可以这样写:

with open('your_file_path', 'r', encoding='iso-8859-1') as f:
    contents = f.read()

方法三:使用二进制模式读取文件

如果你只是需要读取文件的原始字节数据,可以使用二进制模式:

with open('your_file_path', 'rb') as f:
    contents = f.read()

方法4 (最直接简单的方法)

点击pycharm右下角红色框起来的,然后进行格式转化即可

报错二:pycharm打开文件夹显示不全

 解决方案:打开相应文件夹,文件夹里有一个名为.idea,删除该文件夹即可。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Python 报错仅有 message 缺少详细错误信息的解决方案 当处理 Python 中仅提供简单 `message` 而缺乏详细错误信息的情况时,可以采取以下方法增强调试能力并定位问题。 #### 增强异常捕获机制 通过自定义异常捕获逻辑,可以在程序运行过程中获取更丰富的上下文信息。例如,在捕获异常时打印堆栈跟踪或将额外的信息附加到日志中: ```python import traceback try: # 可能引发异常的代码块 result = json.loads('{"key": "value"') # 故意制造 JSON 错误 except Exception as e: print(f"Error Message: {e}") print("Detailed Traceback:") traceback.print_exc() ``` 此代码片段利用了标准库中的 `traceback` 模块来显示完整的调用链路和具体位置[^1]。 #### 使用 logging 模块记录更多信息 为了更好地追踪生产环境下的问题根源,推荐引入 `logging` 库替代简单的 `print()` 函数。它支持不同级别的消息输出以及灵活配置文件存储路径等功能。 ```python import logging # 配置 logger logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s') def risky_function(): try: data = {"name": None} name_length = len(data["name"]) # 这里会抛出 TypeError 或 KeyError except Exception as ex: logging.error("An error occurred.", exc_info=True) risky_function() ``` 上述例子展示了如何启用扩展模式 (`exc_info=True`) 来自动包含异常详情于日志之中[^2]。 #### 修改默认行为以展示更多细节 有时框架或者第三方库可能会截断部分原始报错内容。可以通过调整其内部参数恢复完整表述形式。比如对于 Django REST framework 的 API 请求响应,默认情况下只返回高层级概述而非底层技术实现层面的具体数值对比差异等敏感资料。此时查阅官方文档找到对应设置项即可重新开启全面披露选项。 --- ### 总结 针对 Python 报错只有简短提示而无详尽描述的现象,可以从改进本地测试脚本设计、优化全局监控体系结构两方面入手加以改善。一方面加强局部防护措施如精确指定待捕捉对象类别;另一方面则需构建统一管理平台集中收集各类事件源产生的动态变化情况以便后续分析判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值