Python/selenium读取多行.txt文件内容写入Excel行及Unicode解码错误处理
报错原因
这个SyntaxError: (unicode error) 'unicodeescape'属于代码解析阶段的错误,代码还没执行到读取文件的逻辑就触发了,核心原因是字符串中的反斜杠被Python识别为转义字符:
如果你的代码里填写的txt文件路径是Windows系统的标准路径格式,比如'C:\Users\admin\Desktop\202191391413.txt',其中\U、\a这类组合会被Python当成转义序列解析,而这些序列不合法,就会抛出该错误。
如果路径没有问题,运行时才出现的同类错误才是文件编码不匹配导致的。
解决方法
1. 优先修复路径问题,任选一种方案即可:
- 方案1:在路径字符串前加
r标记为原始字符串,Python不会解析其中的转义符,示例:f = open(r'C:\Users\admin\Desktop\202191391413.txt', 'r+') - 方案2:把路径中的所有反斜杠
\替换为正斜杠/,示例:f = open('C:/Users/admin/Desktop/202191391413.txt', 'r+') - 方案3:把路径中的所有反斜杠转义为双反斜杠
\\,示例:f = open('C:\\Users\\admin\\Desktop\\202191391413.txt', 'r+')
2. 补充编码声明避免后续运行错误
如果修复路径后运行时仍报unicode相关错误,说明txt文件的编码和Python默认读取编码不匹配,在open函数中指定对应编码即可,比如txt是UTF-8编码就写:f = open(r'你的文件路径', 'r+', encoding='utf-8')
如果是中文系统下生成的gbk编码txt,就把encoding值改为gbk。
3. 优化后的完整可运行代码
原代码中导入的xlrd没有被使用,可直接删除避免不必要的依赖,优化后代码如下:
import xlwt # 初始化Excel工作簿,指定编码避免写入中文乱码 book = xlwt.Workbook(encoding='utf-8') ws = book.add_sheet('First Sheet') # 用with上下文管理器自动管理文件资源,不需要手动close # 请替换下面的文件路径为你自己的实际路径 with open(r'C:\Users\admin\Desktop\202191391413.txt', 'r', encoding='utf-8') as f: # 一次性读取所有行 data = f.readlines() # 逐行写入Excel for row_idx in range(len(data)): # 去除首尾空白符后按空格拆分列,如果你是其他分隔符比如逗号、制表符,修改split的参数即可 row_content = data[row_idx].strip().split() for col_idx in range(len(row_content)): ws.write(row_idx, col_idx, row_content[col_idx]) # 保存Excel文件 book.save('pro.xls')
额外说明
你需求中提到的selenium是网页自动化工具,当前纯本地txt转Excel的场景不需要用到selenium。如果你需要先通过selenium爬取网页数据存入txt再转Excel,再补充对应的selenium爬取逻辑即可。
内容的提问来源于stack exchange,提问作者karthi
相关产品推荐
相关产品推荐

