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

Python使用预定义文件名拼接路径写入文件时出现Errno 22报错求助

Python写入文件Errno 22错误解决办法
  • 变量类型不匹配
    你代码中page.find('title')如果是BeautifulSoup库的方法,返回的是Tag类型对象而非纯文本字符串,直接拼接路径会携带Tag对象的隐藏属性或格式标识,导致路径格式非法。
    修复代码:
# 提取title标签内的纯文本,同时去除首尾空白、换行符
page_title = page.find('title').get_text().strip()
  • 文件名包含系统非法字符
    所有操作系统都对文件名有合法字符限制,例如Windows禁止文件名出现\ / : * ? " < > |,如果提取的标题包含这类字符,拼接后的路径就会触发参数无效报错。
    修复代码:
import re
# 把所有非法文件名字符替换为下划线
page_title = re.sub(r'[\\/:*?"<>|]', '_', page_title)
  • 路径拼接写法不规范(可选优化)
    直接用字符串拼接路径分隔符的写法兼容性差,更推荐用Python内置的路径处理模块自动适配不同操作系统的分隔符,同时可以自动校验目录是否存在:
from pathlib import Path

# 定义输出目录,自动创建不存在的目录
output_dir = Path("output")
output_dir.mkdir(exist_ok=True)

# 拼接路径,自动适配系统分隔符
raw_data_path = output_dir / f"{page_title}_raw.txt"

with open(raw_data_path, 'w', encoding='utf-8') as file:
    # 注意:write方法必须传入要写入的内容,空调用会触发报错
    file.write("你要写入的文本内容")

内容的提问来源于stack exchange,提问作者Javier Vandersluis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 12:06:03