python数据读写list操作
有的时候,代码太长或者计算量太大,因此需要保存一些数据到文件中,避免二次计算。
Mark一下代码
list存取
仅适用于字符串
def data_write_csv(file_name, datas):#file_name为写入CSV文件的路径,datas为要写入数据列表
file_csv = codecs.open(file_name,'w+','utf-8')#追加
writer = csv.writer(file_csv, delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)
# for i in len(datas):
# writer.writerow(str(datas[i]))
writer.writerow(datas)#一整个列表
print("保存文件成功,处理结束")
def readdata(filename):
with open(filename)as f:
f_csv = csv.reader(f)
print(f_csv)
# return f_csv[0]
for row in f_csv:
# print(row)
return row
# print(type(row))
data_write_csv("bookurl.csv",bookurl)#存入
booki=readdata("bookurl.csv")#读取
booki=str(booki[0])#这时候虽然是list,but和存入很不一样
print(booki)#先转字符串
booki=booki.split(" ")#再转一次list
print(booki)
print(type(booki))
print(booki[1])
#数字处理方法类似,不过int还是要转换一下
data_write_csv("booid.csv",bookid)
# data_write_csv("bookurl.csv",bookurl)
bookid=readdata("booid.csv")
bookid=str(bookid[0])
# print(booki)
bookid=bookid.split(" ")
for k in range(len(bookid)):
bookid[k]=int(bookid[k])
print(bookid)
print(type(bookid))
print(bookid[87])
print(type(bookid[len(bookid)-1]))
#[[(0, 1), (1, 1), (2, 1)], [(1, 1), (2, 1), (3, 1)], [(1, 1), (2, 1), (4, 1)], [(0, 1), (1, 1), (2, 1), (5, 1)]]保存
def data_write_csv(file_name,datas):#file_name为写入CSV文件的路径,datas为要写入数据列表
file = open(file_name, 'w')
for fp in datas:
file.write(str(fp))
file.write(',')
file.close()
#存成TXT
[(0, 1), (1, 1), (2, 1)],[(1, 1), (2, 1), (3, 1)],[(1, 1), (2, 1), (4, 1)],[(0, 1), (1, 1), (2, 1), (5, 1)],
file = open('ex3.txt', 'r')
list_read = file.readlines()
str=str(list_read[0])
m='['+ str +']'
x=eval(m)
print(x)
print(type(x))