(只是传递,基础知识也是根基)

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格式文件的更多相关文章

  1. python3 库pandas写入csv格式文件出现中文乱码问题解决方法

    python3 库pandas写入csv格式文件出现中文乱码问题解决方法 解决方案: 问题是使用pandas的DataFrame的to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确 ...

  2. python 将json格式的数据写入csv格式的文件中

    # coding=utf-8 import json import csv # 重新进行配置读写数据时的默认编码 import sys reload(sys) sys.setdefaultencodi ...

  3. 假期学习【十一】Python爬取百度词条写入csv格式 python 2020.2.10

    今天主要完成了根据爬取的txt文档,从百度分类从信息科学类爬取百度词条信息,并写入CSV格式文件. txt格式文件如图: 为自己爬取内容分词后的结果. 代码如下: import requests fr ...

  4. java将数据写入到txt文件中(txt有固定的格式)

    java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我 ...

  5. python 爬虫数据存入csv格式方法

    python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ...

  6. 数组转xls格式的excel文件&数据转csv格式的excle

    /** * 数组转xls格式的excel文件 * @param array $data 需要生成excel文件的数组 * @param string $filename 生成的excel文件名 * 示 ...

  7. 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 ...

  8. java导出csv格式文件

    导出csv格式文件的本质是导出以逗号为分隔的文本数据 import java.io.BufferedWriter; import java.io.File; import java.io.FileIn ...

  9. 使用Spark读写CSV格式文件(转)

    原文链接:使用Spark读写CSV格式文件 CSV格式的文件也称为逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号.在本文中的CSV格 ...

随机推荐

  1. 获取Ajax通信对象方法

    function getXHR() { // 该方法用于获取Ajax通信对象 var xhr = null; if (window.XMLHttpRequest != null && ...

  2. Java - 数组详解(图解数组的基本操作)

    目录 什么是数组 数组的定义和内存分配 数组的赋值和访问 数组的注意事项 数组的内存图解 数组的插入 数组的删除 数组的扩容 数组的反转 首先 什么是数组 数组是一组地址连续.长度固定的具有相同类型的 ...

  3. pycharm远程debug(内网环境,跳板机)

    1.设置隧道 工具: secureCRT 1.新建跳板机连接session 2.选择刚建好的session --> Properties --> Port Forwarding --> ...

  4. 031 一次全面的java复习

    一:相关概念 1.面向对象的三个特征 封装,继承,多态,这个应该是人人皆知,有时候也会加上抽象. 2.多态的好处 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性.简单的说 ...

  5. Linux文件名匹配和输出重定向--2019-4-24

    1.文件名匹配 例:rm *.bak;   删除结尾是.bak的文件 rm *4*.bak; 删除名称中有“4”的.bak文件 ls *.????; 查找结尾是“.”后有四个字母的文件 2.管道 先进 ...

  6. Centos发布java的war包后,无法访问发布的工程

    分析: 这时候,看你的开启的端口,8080,3306都能访问的话,那么就是你的地址写错了,可是,经测试,c3p0中的web地址是正确的,那么就去看linux中的tomcat的日志文件再tomcat/l ...

  7. python 在ubuntu下安装pycurl

    https://www.linuxidc.com/Linux/2016-05/131574.htm

  8. Mac上使用jenkins+git持续集成浅析

    本文旨在让同学们明白如何让jenkis在mac笔记本上运行,并实际与一个最简单的git地址交互并执行简单的jenkins任务,如果学习本文,需要先按照https://www.cnblogs.com/x ...

  9. web-storage-cache 使用JS数据缓存

    https://github.com/WQTeam/web-storage-cache 使用WebStorageCache,只要在页面上引入下面代码即可. <script src="s ...

  10. markdown 书写文档的框架

    请使用 [MkDocs](http://www.mkdocs.org/)