Python多文件夹写入数据报错:writerow需可迭代对象而非整数
修复CSV写入时的"iterable expected, not int"错误
问题根源
csv.writer.writerow()方法必须接收可迭代对象(比如列表、元组),但你传入的是单个整数A=3,所以触发了这个错误。
修复方法
把整数A包装成可迭代对象就行,比如用列表或者元组包裹:
修改后的完整代码
import os # 把模块导入移到函数外,避免重复导入浪费资源 from scipy.stats import truncnorm import numpy as np import csv Runs=5 def function(run): parent_folder = str(run + 1) # 先判断文件夹是否存在,避免重复运行时创建失败 if not os.path.exists(parent_folder): os.mkdir(parent_folder) A=3 with open(os.path.join(parent_folder, "A.txt"), 'w+') as f: writer = csv.writer(f) # 用列表包裹单个值 writer.writerow([A]) # 也可以用元组:writer.writerow((A,)) for x in range(Runs): function(x)
额外优化点
- 模块导入放在函数外部:每次调用
function都重复导入模块会降低运行效率,统一移到顶部更规范。 - 添加文件夹存在判断:如果重复运行代码,原代码会因文件夹已存在抛出
FileExistsError,加判断后能避免这个问题。
内容的提问来源于stack exchange,提问作者user20032724
相关产品推荐
相关产品推荐

