Python数据写入csv格式文件

(只是传递,基础知识也是根基)
Python读取数据,并存入Excel打开的CSV格式文件内!
这里需要用到bs4,csv,codecs,os模块。
废话不多说,直接写代码!该重要的内容都已经注释了,剩下不懂的可以自己查询一下,或者QQ群内问我。QQ群在以往的博客中!
#coding:utf-8
from bs4 import BeautifulSoup
import bs4
import os
import time
import csv
import codecs #读取XML内的文件数据并存入CSV格式的文件--可使用EXCEL打开
def open_file():
file_folder= 'C:\\Users\\Administrator\\Desktop\\File\\Filename' ##文件夹位置
if os.path.isdir(file_folder):
for fileName in os.listdir(file_folder):
# print fileName
info(fileName) ##读取文件名字
def info(fileName):
soup = bs4.BeautifulSoup(open('C:/Users/Administrator/Desktop/File/Filename/'+fileName))
a = soup.find_all('mxxx')
info = []
for i in a:
dt=[]
dt.append(i.find('xx').get_text().strip())
dt.append( i.find('xx').get_text().strip())
dt.append(i.find('xx').get_text().strip())
dt.append(i.find('xx').get_text().strip()+'\n')
dt.append( i.find('xx').get_text().strip())
dt.append(i.find('xx').get_text().strip())
dt.append(float( i.find('xx').get_text().strip()) + float(i.find('xx').get_text().strip()))
info.append(dt)
with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行!
csvfile.write(codecs.BOM_UTF8) ##存入表内的文字格式
writer = csv.writer(csvfile) #存入表时所使用的格式
writer.writerow(['表头','表头'])
writer.writerows(info) #写入表 if __name__ == '__main__':
open_file()
这里主要三部分,我调用的测试使用的xml内的数据,这里使用的bs4来解析xml文件。
解释第一部分:
打开文件夹,并获取到文件的名字,因为文件有多个,所以使用了os模块的函数来打开文件
file_folder= 'C:\\Users\\Administrator\\Desktop\\File\\Filename' ##文件夹位置
if os.path.isdir(file_folder):
for fileName in os.listdir(file_folder):
# print fileName
info(fileName) ##读取文件名字
fileName就是我们所获取的文件的名字。
第二部分:
获取文件名字后需要使用bs4模块来打开文件,因为多个文件,所以将解析过程写入函数内。
def info(fileName):
soup = bs4.BeautifulSoup(open('C:/Users/Administrator/Desktop/File/Filename/'+fileName))
a = soup.find_all('mxxx')
info = []
for i in a:
dt=[]
dt.append(i.find('xx').get_text().strip())
dt.append( i.find('xx').get_text().strip())
dt.append(i.find('xx').get_text().strip())
dt.append(i.find('xx').get_text().strip()+'\n')
dt.append( i.find('xx').get_text().strip())
dt.append(i.find('xx').get_text().strip())
dt.append(float( i.find('xx').get_text().strip()) + float(i.find('xx').get_text().strip()))
info.append(dt)
打开文件夹后取出文件,并解析后使用BeautifulSoup的解析网页方法来获取数据,'mxxx'与'xx'都是树的名字。
第三部分:
将数据写入csv文件,这里的数据都是List格式,并需要遍历。
with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行!
csvfile.write(codecs.BOM_UTF8) ##存入表内的文字格式
writer = csv.writer(csvfile) #存入表时所使用的格式
writer.writerow(['表头','表头','表头','表头'])
writer.writerows(info) #写入表
这里的表头要和我们上面获取的数据列一致,不然会出现错误。写入文件的格式有 “ w ”," a+ "," ab+ "等,这里使用的是“ ab+ ”,去除空行!
还有我们如果存入的数据是1000000000这样的,在excel内是E+17的显示,所有在获取数据的时候最后面加 “\n”。最后写入表内,并打开!
Python数据写入csv格式文件的更多相关文章
- python3 库pandas写入csv格式文件出现中文乱码问题解决方法
python3 库pandas写入csv格式文件出现中文乱码问题解决方法 解决方案: 问题是使用pandas的DataFrame的to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确 ...
- python 将json格式的数据写入csv格式的文件中
# coding=utf-8 import json import csv # 重新进行配置读写数据时的默认编码 import sys reload(sys) sys.setdefaultencodi ...
- 假期学习【十一】Python爬取百度词条写入csv格式 python 2020.2.10
今天主要完成了根据爬取的txt文档,从百度分类从信息科学类爬取百度词条信息,并写入CSV格式文件. txt格式文件如图: 为自己爬取内容分词后的结果. 代码如下: import requests fr ...
- java将数据写入到txt文件中(txt有固定的格式)
java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我 ...
- python 爬虫数据存入csv格式方法
python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ...
- 数组转xls格式的excel文件&数据转csv格式的excle
/** * 数组转xls格式的excel文件 * @param array $data 需要生成excel文件的数组 * @param string $filename 生成的excel文件名 * 示 ...
- MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.
MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option s ...
- java导出csv格式文件
导出csv格式文件的本质是导出以逗号为分隔的文本数据 import java.io.BufferedWriter; import java.io.File; import java.io.FileIn ...
- 使用Spark读写CSV格式文件(转)
原文链接:使用Spark读写CSV格式文件 CSV格式的文件也称为逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号.在本文中的CSV格 ...
随机推荐
- kettle基础概念的学习
参考书籍:Pentaho Kettle Solutions中文版.由于最近不断的使用kettle,随着不断深入使用,遇到的问题越来越多,发现脑子那点货根本不够用,所以根据阅读把一些概念记录一下,方便自 ...
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- Nginx 自定义添加Response Headers 修改server
之前说过如何隐藏Response Headers中 X-Powered-By 修改php.ini expose_php = Off service php-fpm reload 隐藏Nginx版本号 ...
- OpenCV函数学习:cvRound,cvFloor,cvCeil
函数cvRound,cvFloor,cvCeil 都是用一种舍入的方法将输入浮点数转换成整数: cvRound 返回跟参数最接近的整数值: cvFloor 返回不大于参数的最大整数值: cvCeil ...
- 初学笔记之:Java_Script的for循环事件绑定
看JS,一直纠结于for循环事件绑定,我一直不理解,想找到一些解释,以下是个人研究一个下午后的一些见解,有不对的还望大神们指正,轻喷.在这里谢过啦. 首先,目的是做一个滑动切换图片的效果,上JS代码: ...
- 30分钟,让你彻底明白Promise原理
前言 前一阵子记录了promise的一些常规用法,这篇文章再深入一个层次,来分析分析promise的这种规则机制是如何实现的.ps:本文适合已经对promise的用法有所了解的人阅读,如果对其用法还不 ...
- CentOS Linux搭建SVN服务器
Linux系统:CentOS 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 可以看到 svn在bin目录下生成了 ...
- 使用PIA查找组件的PeopleSoft导航
导航到企业组件>查找对象导航. 使用组件名称 使用页面名称 使用辅助页面名称 使用内容参考名称 只需输入对象名称,然后单击“搜索”即可.在这个例子中.我们知道组件名称即'PRCSDEFN',我们 ...
- 解决Django+Vue前后端分离的跨域问题及关闭csrf验证
前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道 在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...
- 【技术分享】BurpSuite 代理设置的小技巧
作者:三思之旅 预估稿费:300RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 在Web渗透测试过程中,BurpSuite是不可或缺的神器之一.BurpSuite的核心是 ...