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

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. Redis实战 - 5事务:multi、exec和watch

    介绍 redis的目标的是: 简洁,高效,由于事务本身就是一个很复杂的东西,所有我们不能把事务做的太复杂. DISCARD 取消事务,放弃执行事务块内的所有命令. EXEC 执行所有事务块内的命令. ...

  2. 通过View.post()获取View的宽高

    在Android里,获取View宽高的时机是个老生常谈的话题了.众所周知,在Oncreate里直接调用View.getWidth或者View.getMeasuredWidth返回都是0.所以获取宽高时 ...

  3. swoole websocket服务推送

    用过workerman, 两个字"好用",对于swoole最近有时间也研究研究 swoole的websocket 很好实现 如官网 https://wiki.swoole.com/ ...

  4. 重磅推出:AutoProject Studio 自动化项目生成器

    AutoProject Studio 自动化项目生成器 核心架构图 AutoProject Studio 自动化项目生成器是一款基于C#.Net Framework 4.0为平台自主研发.专为软件设计 ...

  5. UOJ#129. 【NOI2015】寿司晚宴 动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ129.html 题解 考虑把大于等于 $\sqrt n$ 的质数和小于 $\sqrt  n$ 的分开考虑: 1. 小于等于 ...

  6. 输入a,b,求a^b的所有因子之和

    题目 poj的1845 分解a的质因数a=p1^t1*p2^t1........ 每个质因数对sum的贡献: 当除去质因数p1时的因数和为sum,当计入p1时,因子和变成sum*p1^0+sum*p1 ...

  7. 权限的控制 shiro的使用

    ******shiro的使用 三大核心组件 Subject:即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用 ...

  8. The First of my text

    JavaScript 学习第一天 一.属性可以动态拓展 例如: var person = { name : "zs"; age : 21; } person.sex = " ...

  9. 使用ant编译zookeeper源码

    1. 安装Ant Ant下载地址:http://ant.apache.org/bindownload.cgi 解压即可. 注意如果不配置环境变量的话需要使用绝对路径,我配置了. 开始我ant跑错了 U ...

  10. php 解决file_put_contents 不生效

    define('FILE_APPEND', 1); if (!function_exists("file_put_contents")) { function file_put_c ...