无法将随机生成整数列表保存至OneDrive的CSV文件问题求助
问题排查与修复方案
核心错误点
- 未定义变量引用:你生成的正态分布数组变量是
list_of_90_integers,但后续写入CSV时用的是未定义的group1,执行到这里会直接抛出NameError,代码中断后文件根本没机会生成。 - 路径拼接错误:直接用
path + 'group1CSV'会导致路径缺失分隔符,变成C:\Users\Home\OneDrive\Documents\Data Science\Synthetic Data Filesgroup1CSV,系统无法识别该路径。 - 文件名不规范:缺少
.csv后缀,不利于文件识别与后续处理。 - 冗余代码:第一段创建
group1CSV的代码属于无效重复操作,且同样存在变量错误。
修复后的完整代码
import numpy as np import csv import os # 用于安全拼接路径 # Group 1:生成符合要求的90个正态分布整数 np.random.seed(42) mean = 140 sd = 10 size = 90 # 统一变量名,避免混乱 group1 = np.random.normal(mean, sd, size=size).astype(int) print(group1) # 先打印数据,确认生成正确 # 定义目标路径 path = r'C:\Users\Home\OneDrive\Documents\Data Science\Synthetic Data Files' # 安全拼接路径与文件名(自动处理分隔符) full_file_path = os.path.join(path, 'group1.csv') # 写入CSV文件 with open(full_file_path, 'w', newline='') as file: writer = csv.writer(file) # writerow会把整个列表写成一行;若要每个数值单独占一行,改用下面的代码 # writer.writerows([[num] for num in group1]) writer.writerow(group1)
额外说明
- 如果需要每个数值单独占一行(更规范的单列CSV格式),把
writer.writerow(group1)替换为:writer.writerows([[num] for num in group1]) - 若目标文件夹不存在,可添加以下代码自动创建:
os.makedirs(path, exist_ok=True)
内容的提问来源于stack exchange,提问作者YNWA10
相关产品推荐
相关产品推荐

