1.使用pandas写入内容。
依托pandas中的DataFrame函数,实现对数据的写入。
这是按列的方法写入CSV文件中,即每个参数保存的是要写入的每列的元素。
下面是一个简单的示例:
import csv
import pandas as pd
list=['0001.jpg',1312,151,1651,1561,1561,51658,100]
index=[]
tupan=[]
x1=[]
x2=[]
x3=[]
x4=[]
x5=[]
x6=[]
x7=[]
list_n=[]
for i in range(100):
index.append(i)
tupan.append(list[0])
x1.append(list[1])
x2.append(list[2])
x3.append(list[3])
x4.append(list[4])
x5.append(list[5])
x6.append(list[6])
x7.append(list[7])
data=pd.DataFrame({'序号':index,'文件名':tupan,'坐标0':x1,'坐标1':x2,'坐标2':x3,'坐标3':x4,'坐标4':x5,'坐标5':x6,'坐标6':x7})
data.to_csv('./data.csv',index=False,encoding='gbk')
保存的CSV文件结果如下:
前面的这一列序号是自动生成的。
2.依托csv的writerow函数实现
这是按照每行的方式写入,即每个变量中存的是每一行的所有元素。元素可以是任意类型的。
f=open(r'./data.csv','w',encoding='gbk')
r1=csv.writer(f)
header=['a','b','c','d','e']
raw=['nfkasjf.png',323645,'bbbb','de',25.99,888.8558]
r1.writerow(header)
for i in range(100):
r1.writerow(raw)
f.close()
data=pd.read_csv('./data.csv',encoding='gbk')
print(data)
结果如下:
这样的方式是一行一行的写入,当然也可以多行直接写入。
代码如下:
f=open(r'./data.csv','w',encoding='gbk')
r1=csv.writer(f)
header=['a','b','c','d','e']
raw=['nfkasjf.png',323645,'bbbb','de',25.99,888.8558]
list=[]
list.append(header)
for i in range(100):
list.append(raw)
r1.writerows(list)
f.close()
data=pd.read_csv('./data.csv',encoding='gbk')
print(data)
结果如下:
在写入的过程中,可以根据自己的需要进行修改,核心的代码就是pd.DataFrame函数和csv.writer函数和writerow函数。
3.逐行向TXT文件写入内容
TXT写入的内容是字符串格式的,所以在写入时使用str转换数据类型。
主要的函数是write,fw是打开的文件,write里面的参数就是写入TXT文件的内容,“\n”是换行符。
scr_list=os.listdir('./sourcedata')
print(scr_list)
with open('./test.txt','w',encoding='ANSI') as fw:
for i in scr_list:
path="./sourcedata/{}".format(i)
data=pd.read_csv(path,encoding='ANSI',engine='python')
data=np.array(data)
for j in range(len(data)):
print(j)
if str(data[j][2])=="无":
fw.write(str(data[j][1])+ '\n')
else:
fw.write(str(data[j][2])+str(data[j][1])+'\n')
fw.write(str(data[j][3])+'\n')
fw.write('\n')
fw.close()