python csv文件问题
这个是什么问题要怎么解决{:5_104:} {:5_104:} {:5_104:} csv.writer 第一个参数是文件句柄第二个参数是写入内容 你发一下文本代码以便帮忙测试,你发图片都没法测试的 wp231957 发表于 2023-5-29 16:05csv.writer 第一个参数是文件句柄第二个参数是写入内容
你好,可以在细说一下吗,我没用看的很懂 wp231957 发表于 2023-5-29 16:06
你发一下文本代码以便帮忙测试,你发图片都没法测试的
import csv
score1 = [['考号','程序设计','细胞生物','生理学'],,,,,,,,,,]
with open ('score.csv','w',newline='') as score:
writer = csv.writer(score)
for row in score1:
writer.writerow(row)
with open('score.csv','r') as score:
reader = csv.reader(score)
print(list(reader))
s1 = for row in list(reader)]
s2 = for row in list(reader)]
s3 = for row in list(reader)]
S =
for s in S:
Sum = 0
print('{}:'.format(s),end='')
for i in s:
Sum += int(i)
urbanlife 发表于 2023-5-29 16:12
import csv
score1 = [['考号','程序设计','细胞生物','生理学'],,
import csv
score1 = [['考号','程序设计','细胞生物','生理学'],,,,,,,,,,]
with open ('score.csv','w',newline='') as score:
writer = csv.writer(score)
for row in score1:
writer.writerow(row)
with open('score.csv','r') as score:
reader = list(csv.reader(score))
#print("***",list(reader))
s1 = for row in (reader)]
s2 = for row in (reader)]
s3 = for row in (reader)]
S =
#print(S)
for s in S:
Sum = 0
print('{}:'.format(s),end='')
for i in s:
Sum += int(i)
urbanlife 发表于 2023-5-29 16:12
import csv
score1 = [['考号','程序设计','细胞生物','生理学'],,
二楼可以忽略了,是错的 先不看你的代码有没有问题,但是你的脚本文件不能命名成跟你需要导入的库一样,不然会导致没法导入你所需的库 isdkz 发表于 2023-5-29 17:05
先不看你的代码有没有问题,但是你的脚本文件不能命名成跟你需要导入的库一样,不然会导致没法导入你所需的 ...
{:5_94:}你好我没有在我的代码里发现这个问题啊 urbanlife 发表于 2023-5-29 17:10
你好我没有在我的代码里发现这个问题啊
你的脚本名字是 csv.py,你给它改成别的名字,不要用 csv.py 作为名字 脚本名称不要用csv,不然导入的csv就是脚本自己 isdkz 发表于 2023-5-29 17:13
你的脚本名字是 csv.py,你给它改成别的名字,不要用 csv.py 作为名字
好的,谢谢纠正这个错误 isdkz 发表于 2023-5-29 17:13
你的脚本名字是 csv.py,你给它改成别的名字,不要用 csv.py 作为名字
可以帮我看看其他哪里有问题吗???
urbanlife 发表于 2023-5-29 18:49
好的,谢谢纠正这个错误
不客气,问题解决的话给个最佳答案支持一下呗{:5_109:} urbanlife 发表于 2023-5-29 18:50
可以帮我看看其他哪里有问题吗???
我执行一下看看 歌者文明清理员 发表于 2023-5-29 18:47
脚本名称不要用csv,不然导入的csv就是脚本自己
好的谢谢,楼上的人已经纠正了我这个错误,但是也谢谢你 urbanlife 发表于 2023-5-29 16:12
import csv
score1 = [['考号','程序设计','细胞生物','生理学'],,
你的代码的问题是由于你试图从空列表中取值导致的。问题在这部分代码:
with open('score.csv','r') as score:
reader = csv.reader(score)
print(list(reader))
s1 = for row in list(reader)]
s2 = for row in list(reader)]
s3 = for row in list(reader)]
你调用了 list(reader) 三次。第一次调用打印了整个列表,而在其后两次调用中,你试图从这个已经被遍历完的reader对象中获取元素,这就是为什么s1、s2和s3都是空的,因为在这时reader对象已经没有任何数据了。
换句话说,reader对象是一个迭代器,当你遍历它一次后,你就不能再从中获取数据了。
你可以像下面这样修改你的代码:
with open('score.csv','r') as score:
reader = csv.reader(score)
all_rows = list(reader) # 只调用一次list(reader)
print(all_rows)
s1 = for row in all_rows]
s2 = for row in all_rows]
s3 = for row in all_rows]
现在,s1、s2和s3将包含你想要的数据,因为我们只对reader对象调用一次 list() 函数,以获取其所有行。这样,当我们进行后续处理时,就可以从这个列表中获取数据了。
修改后的完整代码:
import csv
score1 = [['考号','程序设计','细胞生物','生理学'],,,,,,,,,,]
with open ('score.csv','w',newline='') as score:
writer = csv.writer(score)
for row in score1:
writer.writerow(row)
with open('score.csv','r') as score:
reader = csv.reader(score)
all_rows = list(reader) # 只调用一次list(reader)
s1 = for row in list(all_rows)]
s2 = for row in list(all_rows)]
s3 = for row in list(all_rows)]
S =
for s in S:
Sum = 0
print('{}:'.format(s),end='')
for i in s:
Sum += int(i)
urbanlife 发表于 2023-5-29 18:54
好的谢谢,楼上的人已经纠正了我这个错误,但是也谢谢你
给他最佳吧,另外你代码没问题 urbanlife 发表于 2023-5-29 18:50
可以帮我看看其他哪里有问题吗???
难道六楼代码不对???
页:
[1]