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格 ...
随机推荐
- itextsharp html转成pdf 特殊符号异常处理
项目中使用html转成pdf ,遇到包含& 特殊字符就会出错. 比如:<p>&</p>使用该html输出成pdf就会报异常 解决方案:需使用html转义符< ...
- [原创]基于Zynq PS与PL之间寄存器映射 Standalone & Linux 例程
基于Zynq PS与PL之间寄存器映射 Standalone & Linux 例程 待添加完善中
- thinkphp5简单使用redis缓存
<?php namespace app\index\controller; use think\Controller; use think\Cache\Driver\Redis; class I ...
- 【webpack系列】从零搭建 webpack4+react 脚手架(三)
本章节,我们对如何在脚手架中引入CSS,如何压缩CSS,如何使用CSS Modules,如何使用less,如何使用postcss等问题进行展开学习. 1 支持css (1)在app目录,新建一个css ...
- Jmeter性能测试报告扩展
自动收集采集结果:运行完毕后,自动出结果:
- vbs脚本实现qq定时发消息(初级)
vbs脚本实现QQ消息定时发送 目标 批处理又称为批处理脚本,强大的强大功能可以高效得实现很多功能,例如批量更改文件格式,批量进行文件读写,今天我们的目标是用vbs脚本编写可以发送qq消息的脚本,并利 ...
- ORACLE启动报错ORA-03113: end-of-file on communication channel
使用过程中发现oracle运行很慢(其实应该先关注空间问题),就准备关机重启一下,关不掉就强制关闭,然后启动就报错了. 1.SQL> startup ORACLE instance starte ...
- Flex布局—语法篇
网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...
- 记一次Dynamic Batching不生效的爬坑实例分析[Unity]
最近在项目开发过程中,无意发现游戏场景的绘制占用了大量的Batches,几乎一个模型显示就占用了一个Batch,而Saved by batching数量几乎为0,即没有任何合批渲染优化.这显然跟预期相 ...
- Android手机ROM刷机简介
这一段时间刷了一堆ROM,安卓系列.CM.Hero.OldMos.隔壁新出的Android2.0,反正都尝了一下鲜,手机的照相机也刷得再也启不来了(不知道什么原因,杯具).有话说:"久病成良 ...