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

编写Python3.9脚本解析文本文件 按行首标识符执行对应操作

问题原因

你调用readlines()后返回的lines是由文件每一行文本组成的字符串列表,遍历得到的line本身就是字符串类型,不存在read方法,这就是你触发类型报错的根因,直接使用line变量即可读取行内容。

完整实现代码

# 读取用户输入的脚本文件路径
script_path = input("Enter the script filename: ")
# 临时存储当前待转换文本和对应输出文件名
current_text = ""
current_filename = ""

# 用with上下文管理器自动处理文件关闭,避免资源泄漏
with open(script_path, 'r', encoding='utf-8') as f:
    for line in f:
        # 去除行首尾的空白字符(换行符、空格、制表符等)
        stripped_line = line.strip()
        # 跳过空行
        if not stripped_line:
            continue
        # 按行标识符分类处理
        if stripped_line.startswith('#') or stripped_line.startswith('A:'):
            # 注释行、操作提示行直接跳过
            continue
        elif stripped_line.startswith('T:'):
            # 提取待转语音的文本内容,移除开头的T:标识
            current_text = stripped_line[2:].strip()
        elif stripped_line.startswith('F:'):
            # 提取输出文件名,移除开头的F:标识
            current_filename = stripped_line[2:].strip()
            # 文本和文件名都已获取,可调用Amazon Polly生成音频
            if current_text:
                print(f"待生成音频:文本={current_text},输出文件={current_filename}")
                # 此处替换为你调用Amazon Polly的实际业务代码
                # 生成完成后重置临时变量,处理下一组内容
                current_text = ""
                current_filename = ""

关键说明

  • 无需手动调用close()关闭文件,with语法会在代码块执行结束后自动释放文件资源,更安全可靠
  • 调用strip()处理每一行是为了避免行首尾的换行符、多余空格干扰标识符判断
  • 上述逻辑默认T:行一定在对应F:行之前,和你给出的示例格式保持一致,如果你的脚本存在其他顺序可自行调整临时变量的处理逻辑

内容的提问来源于stack exchange,提问作者Lanette Manzi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:30:01