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

创建读取csv文件的Python函数报无效语法错误如何解决

错误原因

你遇到的语法报错和pd.read_csv无关,是Python不支持直接用{table_name}_scn_csv这种插值写法直接定义变量名,这行赋值语句本身不符合Python语法规则。

解决方案

方案1:调用时手动赋值(最推荐,写法简洁易维护)

函数内直接返回读取到的DataFrame,你需要用哪个名字存,调用的时候自己定义变量即可:

import pandas as pd

def read_csv_for_tsv_files(table_name):
    return pd.read_csv(
        fr'C:\Users\xxx\Desktop\{table_name}.csv', 
        sep=';', 
        error_bad_lines=False
    )

# 调用示例,和你写的可运行的写法效果完全一致
table_name_scn_csv = read_csv_for_tsv_files("table_name_scn")

方案2:用字典批量存储(适合需要一次性读取多个文件的场景)

如果需要批量读取多个表,不需要手动写N个赋值语句,用字典存所有读取结果即可,键为自定义的名称,值为对应的DataFrame:

import pandas as pd

def read_batch_csv(table_name_list):
    data_pool = {}
    for table_name in table_name_list:
        # 键名按你需要的规则生成
        data_pool[f"{table_name}_scn_csv"] = pd.read_csv(
            fr'C:\Users\xxx\Desktop\{table_name}.csv', 
            sep=';', 
            error_bad_lines=False
        )
    return data_pool

# 调用示例,一次性读取a、b、c三个表
all_data = read_batch_csv(["a", "b", "c"])
# 读取对应表直接从字典取即可
a_data = all_data["a_scn_csv"]
b_data = all_data["b_scn_csv"]

注意:不推荐用globals()[f"{table_name}_scn_csv"] = xxx这种直接修改全局变量的写法,很容易造成变量名冲突、代码难以调试的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:15:02