You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

交通冲突预测Python代码Unicode转义错误排查与解决求助

问题排查与解决

核心错误原因

你遇到的SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes...错误,是因为Python将路径字符串中的\U识别为Unicode转义序列起始,但后续字符不完整导致解码失败。同时代码还存在路径拼接语法错误、缺失依赖导入的问题。

具体修复步骤

1. 修复路径转义问题

Windows路径中的反斜杠\在Python字符串中是转义字符,可通过三种方式解决:

  • 给字符串加r前缀,使用原始字符串,让Python不解析转义字符
  • 将反斜杠替换为正斜杠/
  • 用双反斜杠\\做转义处理

2. 修正路径拼接错误

代码中filename=r'C:\Users\Tawkir\Desktop\Lab Work +file'是错误写法,原始字符串无法直接拼接变量,需改用f-string或标准字符串拼接语法。

3. 补充缺失的依赖导入

代码使用了pd.read_csv但未导入pandas库,必须添加import pandas as pd。

修复后的完整代码

import os
import math
import pandas as pd  # 补充缺失的pandas导入

# 修复路径:使用原始字符串
fileset = os.listdir(r'C:\Users\Tawkir\Desktop\Lab Work')
for file in fileset:
    num = file.split('.')[0].split('-')[0]
    # 用f-string拼接路径,同时用原始字符串前缀处理转义
    filename = fr'C:\Users\Tawkir\Desktop\Lab Work\{file}'
    data = pd.read_csv(filename)
    data = data.loc[data['lane_id'] < 10]
    a = (data.groupby(['track_id'])['lane_id'].max() - data.groupby(['track_id'])['lane_id'].min()).reset_index().rename(columns={'lane_id': 'delta'})
    b = data.groupby(['track_id'])['lane_id'].max().astype(int).reset_index().rename(columns={'lane_id': 'new'})
    c = data.groupby(['track_id']).lane_id.nth(0).reset_index().rename(columns={'lane_id': 'first'})
    d = data.groupby(['track_id']).lane_id.nth(-1).reset_index().rename(columns={'lane_id': 'last'})
    data = pd.merge(data, a)
    del(a)
    data = pd.merge(data, b)
    del(b)
    data = pd.merge(data, c)
    del(c)
    data = pd.merge(data, d)
    del(d)
    data.loc[(data['delta'] == 0.5) & (data['first'] != data['first'].astype(int)) & (data['last'] != data['last'].astype(int)),
    'lane_id'] = data.loc[(data['delta'] == 0.5) & (data['first'] != data['first'].astype(int)) & (data['last'] != data['last'].astype(int)), 'new']
    data = data.iloc[:, 0:13]
    data['speed'] = data['speed'] / 3.6
    excel_file = f'./data_geo/{num}_geo.xlsx'  # 改用f-string更简洁
    map_data = pd.read_excel(excel_file)
    a2 = -0.1301
    ttc_data = ttc(data, map_data, a2)
    ttc_data = ttc_data.sort_values(by=['track_id1', 'track_id2', 'ttc'])
    ttc_data.to_csv("ttc_data3.csv", index=False)
    ttc_data.drop_duplicates(subset=['track_id1', 'track_id2'], inplace=True)
    ttc_data.to_csv("ttc_data2.csv", index=False)
    ttc_data = ttc_data.loc[ttc_data['ttc'] <= 20]
    ttc_data.to_csv("ttc_data.csv", index=False)
    del(ttc_data)
    del(data)

额外注意事项

  • 确保ttc函数已正确定义或导入,否则会触发NameError
  • 检查./data_geo/目录是否存在,避免读取Excel文件时出现找不到文件的错误

内容的提问来源于stack exchange,提问作者Tawkir Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:31:04