51Testing软件测试论坛
标题: 读取csv的文件方法时去除了文件的第一行内容,但是我的表格里都是注册用户的信息 [打印本页]
作者: 罙罙の回憶 时间: 2019-5-22 12:08
标题: 读取csv的文件方法时去除了文件的第一行内容,但是我的表格里都是注册用户的信息
import csvdef file_read(filename): path = '../test_data_1/' + filename with open(path) as file: # file = open('../test_data_1/' + filename) table = csv.reader(file) return tabletable = file_read('regdata.csv')for row in table: print(row)报错信息:
for row in table:
ValueError: I/O operation on closed file
在学课程
Python测试开发全栈核心课程 互联网测试工程师必修课
作者: 学掌门网校 时间: 2019-5-22 14:32
命令不能混搭呵,你前面用了with,后面就不能用csv.reader
with open(path,"r") as file:
table=file.read()
这样是可以的,要用csv.reader,就用我课上的方法file=open(.......)
作者: 罙罙の回憶 时间: 2019-5-22 14:35
使用with是想文件自动关闭。如果用file.read()的话,这样输出就不是按预期的一个cell一个cell输出的,而是一个字符一个字符输出的。我这边上传一下老师的代码
作者: 学掌门网校 时间: 2019-5-22 14:39
csv.reader()方法返回的数据保存在内存中,关闭文件时,会清空内存。这样就导致table中的数据被清空了,所以要声明一个list作为中间变量,保存csv文件中的值。
import csv
def file_read(filename):
list=[]
path = '../test_data_1/' + filename
with open(path) as file:
# file = open('../test_data_1/' + filename)
table = csv.reader(file)
for row in table:
list.append(row)
return list
table = file_read('regdata.csv')
for row in table:
print(row)
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |