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格 ...
随机推荐
- Redis数据类型SortedSET
Sorted Set有点像Set和Hash的结合体.和Set一样,它里面的元素是唯一的,类型是String,所以它可以理解为就是一个Set.但是Set里面的元素是无序的,而Sorted Set里面的元 ...
- HTML5原生拖拽/拖放(drag & drop)详解
前言 拖放(drap && drop)在我们平时的工作中,经常遇到.它表示:抓取对象以后拖放到另一个位置.目前,它是HTML5标准的一部分.我从几个方面学习并实践这个功能. 拖放的流程 ...
- C++多态及其实现原理
1. 多态的定义:多态含义为一个事物有多种形态.在C ++程序设计中,多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数,主要分为静态多态和动态多态: 静态 ...
- json随笔
<script> var obj2={};//这只是JS对象 var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的对象 */ var o ...
- 《JAVA程序设计》结对编程联系_四则运算(第二周:整体性总结)
结对对象与其博客链接 20175312陶光远:https://www.cnblogs.com/20175312-tgy/p/10697238.html 需求分析 (一)功能需求 1.自动生成题目(上周 ...
- html动画实现
1.目标动图 2.主要代码 <p><img src="http://img.baidu.com/hi/jx2/j_0043.gif"/><img sr ...
- fine-tuning 两阶段模型
目前大部分的nlp任务采用两阶段的模型,第一阶段进行预训练,一般是训练一个语言模型.最出名的是BERT,BERT的预训练阶段包括两个任务,一个是Masked Language Model,还有一个是N ...
- 小程序app.onLaunch中获取用户信息,index.onLoad初次载入时取不到值的问题
问题描述: //app.js App({ globalData:{ nickname:'' }, onLaunch: function () { let that=this; //假设已经授权成功 w ...
- 使用selenium操作ant design前端的页面,感觉页面没加载完
因需要收集页面数据,遂准备使用selenium爬取瓦斯阅读页面, 瓦斯网站使用的是ant design,元素定位非常困难,页面元素都没有ID,现在还只是能做到操作登录,不能自动打开订阅,查询某公众号, ...
- 计蒜客 方程的解数 dfs
题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...