锟0409 2023-01-15 22:42 采纳率: 0%
浏览 38

求解编写一个程序,生成一个10×10的随机矩阵并保存文件,再写程序将刚才的文件保存为CSV格式,用excel或文本编辑器查看保存的CSV文件是否正确

问题遇到的现象和发生背景

问题背景:编写一个程序,生成一个10×10的随机矩阵并保存文件,再写程序将刚才的文件保存为CSV格式,用excel或文本编辑器查看保存的CSV文件是否正确

遇到的现象和发生背景,请写出第一个错误信息

错误应该是出在第二个即transcsv函数中的for循环中,但我也不知道为什么

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
import random
def createfiles(min,max,filename):
    f=open("{}.txt".format(filename),"w")
    for i in range(0,10):
        content=''
        for j in range(0,10):
            content=content+str(random.randrange(min,max))+" "
        f.write(content+"\n")
    f.close()
def transcsv(txtname,csvname):
    f1=open("{}.txt".format(txtname),"r")
    f2=open("{}.txt".format(csvname),"w")
    a=f1.readlines()
    for row in a:
        f2.write(','.join(row)+'\n')
    f1.close()
    f2.close()
createfiles(1,20,"help")
transcsv("help","transhelp")
运行结果及详细报错内容

img

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

编写两个函数,第一个函数为createfiles,在该函数中用random库中的randrange函数生成随机矩阵,并将矩阵存入文件中
之后编写transcsv函数,在该函数中首先读取之前生成的文件,并用Join函数在该文件中插入‘,',并将内容写到f2(转换后的csv文件
)中

  • 写回答

2条回答 默认 最新

  • ShowMeAI 2023-01-15 23:40
    关注

    在transcsv函数中,你使用了f2.write(','.join(row) + '\n')来将文本文件转换为csv文件。这会将整行字符串作为一个参数传递给join函数,而不是每个单独的元素。

    应该改为:

        for row in a:
            f2.write(','.join(row.split()) + '\n')
    
    评论

报告相同问题?

问题事件

  • 修改了问题 1月15日
  • 创建了问题 1月15日

悬赏问题

  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开