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

运行report.py遇SyntaxError:函数参数类型注解处语法错误求助

语法错误排查方案

问题根源

你代码里用了两个仅高版本Python支持的语法特性,而运行环境的Python版本太低:

  • file_name: str 这种类型注解需要Python 3.5及以上支持
  • f'{sys.path[0]}/{file_name}' 这种f-string格式化需要Python 3.6及以上支持

移除类型注解后错误跳到下一行,正好是f-string的位置,完全符合版本不兼容的表现。

解决办法

方案1:升级Python版本

直接把Python升级到3.6或更高版本(推荐3.8及以上,稳定性和兼容性更好),升级后无需修改代码就能正常运行。

方案2:修改代码适配旧版本

如果没法升级Python,就把代码改成旧版本兼容的写法:

  1. 删掉函数参数的类型注解,把:
    def create_file_if_not_exist(file_name: str):
    
    改成:
    def create_file_if_not_exist(file_name):
    
  2. 把所有f-string替换成str.format()写法,比如:
    f'{sys.path[0]}/{file_name}'
    
    改成:
    '{}/{}'.format(sys.path[0], file_name)
    

修改后的代码片段示例

import logging
import sys
import os.path as path
import csv

def set_logging():
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s %(levelname)s %(message)s',
        handlers=[
            logging.FileHandler("debug.log"),
            logging.StreamHandler()])

def create_file_if_not_exist(file_name):
    if (not path.exists('{}/{}'.format(sys.path[0], file_name))):
        logging.info('{}/{} not exist.'.format(sys.path[0], file_name))
        data_file = open('{}/{}'.format(sys.path[0], file_name), 'w+')
        csv_writer = csv.writer(data_file)
        values = ["Date", "Test Level","Total","Fail","Pass","Elapsed","Jenkins Build","Pass%","Build URL"]
        
        csv_writer.writerow(values)
        logging.info("Header added to the file")
        data_file.close()
        logging.info('{}/{} created.'.format(sys.path[0], file_name))

if __name__ == "__main__":
    try:
        set_logging()
    
        logging.info("---- Fetching csv file ----")
        file_name = "report_FT.csv"
        create_file_if_not_exist(file_name)
        data_file = open('{}/{}'.format(sys.path[0], file_name), 'a')
        csv_writer = csv.writer(data_file)
    # 补充try块的异常处理,避免后续语法错误
    except Exception as e:
        logging.error("Error occurred: {}".format(e))
    finally:
        if 'data_file' in locals():
            data_file.close()

内容的提问来源于stack exchange,提问作者Sharon John D'Souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 23:05:42