Python数据写入csv格式文件
Posted James·Joshua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据写入csv格式文件相关的知识,希望对你有一定的参考价值。
(只是传递,基础知识也是根基)
Python读取数据,并存入Excel打开的CSV格式文件内!
这里需要用到bs4,csv,codecs,os模块。
废话不多说,直接写代码!该重要的内容都已经注释了,剩下不懂的可以自己查询一下,或者QQ群内问我。QQ群在以往的博客中!
1 #coding:utf-8 2 from bs4 import BeautifulSoup 3 import bs4 4 import os 5 import time 6 import csv 7 import codecs 8 9 #读取XML内的文件数据并存入CSV格式的文件--可使用EXCEL打开 10 def open_file(): 11 file_folder= \'C:\\\\Users\\\\Administrator\\\\Desktop\\\\File\\\\Filename\' ##文件夹位置 12 if os.path.isdir(file_folder): 13 for fileName in os.listdir(file_folder): 14 # print fileName 15 info(fileName) ##读取文件名字 16 def info(fileName): 17 soup = bs4.BeautifulSoup(open(\'C:/Users/Administrator/Desktop/File/Filename/\'+fileName)) 18 a = soup.find_all(\'mxxx\') 19 info = [] 20 for i in a: 21 dt=[] 22 dt.append(i.find(\'xx\').get_text().strip()) 23 dt.append( i.find(\'xx\').get_text().strip()) 24 dt.append(i.find(\'xx\').get_text().strip()) 25 dt.append(i.find(\'xx\').get_text().strip()+\'\\n\') 26 dt.append( i.find(\'xx\').get_text().strip()) 27 dt.append(i.find(\'xx\').get_text().strip()) 28 dt.append(float( i.find(\'xx\').get_text().strip()) + float(i.find(\'xx\').get_text().strip())) 29 info.append(dt) 30 with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行! 31 csvfile.write(codecs.BOM_UTF8) ##存入表内的文字格式 32 writer = csv.writer(csvfile) #存入表时所使用的格式 33 writer.writerow([\'表头\',\'表头\']) 34 writer.writerows(info) #写入表 35 36 if __name__ == \'__main__\': 37 open_file()
这里主要三部分,我调用的测试使用的xml内的数据,这里使用的bs4来解析xml文件。
解释第一部分:
打开文件夹,并获取到文件的名字,因为文件有多个,所以使用了os模块的函数来打开文件
1 file_folder= \'C:\\\\Users\\\\Administrator\\\\Desktop\\\\File\\\\Filename\' ##文件夹位置 2 if os.path.isdir(file_folder): 3 for fileName in os.listdir(file_folder): 4 # print fileName 5 info(fileName) ##读取文件名字
fileName就是我们所获取的文件的名字。
第二部分:
获取文件名字后需要使用bs4模块来打开文件,因为多个文件,所以将解析过程写入函数内。
1 def info(fileName): 2 soup = bs4.BeautifulSoup(open(\'C:/Users/Administrator/Desktop/File/Filename/\'+fileName)) 3 a = soup.find_all(\'mxxx\') 4 info = [] 5 for i in a: 6 dt=[] 7 dt.append(i.find(\'xx\').get_text().strip()) 8 dt.append( i.find(\'xx\').get_text().strip()) 9 dt.append(i.find(\'xx\').get_text().strip()) 10 dt.append(i.find(\'xx\').get_text().strip()+\'\\n\') 11 dt.append( i.find(\'xx\').get_text().strip()) 12 dt.append(i.find(\'xx\').get_text().strip()) 13 dt.append(float( i.find(\'xx\').get_text().strip()) + float(i.find(\'xx\').get_text().strip())) 14 info.append(dt)
打开文件夹后取出文件,并解析后使用BeautifulSoup的解析网页方法来获取数据,\'mxxx\'与\'xx\'都是树的名字。
第三部分:
将数据写入csv文件,这里的数据都是List格式,并需要遍历。
1 with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行! 2 csvfile.write(codecs.BOM_UTF8) ##存入表内的文字格式 3 writer = csv.writer(csvfile) #存入表时所使用的格式 4 writer.writerow([\'表头\',\'表头\',\'表头\',\'表头\']) 5 writer.writerows(info) #写入表
这里的表头要和我们上面获取的数据列一致,不然会出现错误。写入文件的格式有 “ w ”," a+ "," ab+ "等,这里使用的是“ ab+ ”,去除空行!
还有我们如果存入的数据是1000000000这样的,在excel内是E+17的显示,所有在获取数据的时候最后面加 “\\n”。最后写入表内,并打开!
以上是关于Python数据写入csv格式文件的主要内容,如果未能解决你的问题,请参考以下文章
Python将数据写入excel或者txt,读入csv格式或xls文件
python存储数据的操作(csv格式文件,Excel表格文件)!!!
假期学习Python爬取百度词条写入csv格式 python 2020.2.10