将writer0直接赋值为pd.ExcelWriter没问题,但动态变量赋值就报错
用eval也不行
能把原有代码和改之后的代码通过代码段打出来吗?
for i in range(len(city)):
print(i)
writer0 = pd.ExcelWriter(path+City_name+".xlsx")
exec('writer{}={}'.format(i,pd.ExcelWriter(path+City_name+".xlsx")))#不行
# exec('writer{}=eval({})'.format(i, pd.ExcelWriter(path + City_name + ".xlsx")))#也不行
"""
都是报
File "<string>", line 1
writer0=<pandas.io.excel._openpyxl._OpenpyxlWriter object at 0x00000261EC689730>
SyntaxError: invalid syntax
"""
试试这个
whole_path = path + City_name + ".xlsx"
exec('writer{}={}({})'.format(i, pd.ExcelWriter, whole_path))
发现问题所在了,用format函数输出ExcelWriter时,是输出它的地址,类型信息,而不是调用.....可是该怎么才能调用呢