创建读取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
相关产品推荐
相关产品推荐

