Python数据写入csv格式文件

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

Python读取数据,并存入Excel打开的CSV格式文件内!

这里需要用到bs4,csv,codecs,os模块。

废话不多说,直接写代码!该重要的内容都已经注释了,剩下不懂的可以自己查询一下,或者QQ群内问我。QQ群在以往的博客中!

 1 #coding:utf-8
 2 from bs4 import BeautifulSoup
 3 import bs4
 4 import os
 5 import time
 6 import csv
 7 import codecs
 8
 9 #读取XML内的文件数据并存入CSV格式的文件--可使用EXCEL打开
10 def open_file():
11     file_folder= ‘C:\\Users\\Administrator\\Desktop\\File\\Filename‘ ##文件夹位置
12     if os.path.isdir(file_folder):
13         for fileName in os.listdir(file_folder):
14            # print fileName
15             info(fileName) ##读取文件名字
16 def info(fileName):
17     soup = bs4.BeautifulSoup(open(‘C:/Users/Administrator/Desktop/File/Filename/‘+fileName))
18     a = soup.find_all(‘mxxx‘)
19     info = []
20     for i in a:
21         dt=[]
22         dt.append(i.find(‘xx‘).get_text().strip())
23         dt.append( i.find(‘xx‘).get_text().strip())
24         dt.append(i.find(‘xx‘).get_text().strip())
25         dt.append(i.find(‘xx‘).get_text().strip()+‘\n‘)
26         dt.append( i.find(‘xx‘).get_text().strip())
27         dt.append(i.find(‘xx‘).get_text().strip())
28         dt.append(float( i.find(‘xx‘).get_text().strip())  + float(i.find(‘xx‘).get_text().strip()))
29         info.append(dt)
30     with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行!
31         csvfile.write(codecs.BOM_UTF8)  ##存入表内的文字格式
32         writer = csv.writer(csvfile)  #存入表时所使用的格式
33         writer.writerow([‘表头‘,‘表头‘])
34         writer.writerows(info) #写入表
35
36 if __name__ == ‘__main__‘:
37     open_file()

这里主要三部分,我调用的测试使用的xml内的数据,这里使用的bs4来解析xml文件。

解释第一部分:

打开文件夹,并获取到文件的名字,因为文件有多个,所以使用了os模块的函数来打开文件

1  file_folder= ‘C:\\Users\\Administrator\\Desktop\\File\\Filename‘ ##文件夹位置
2     if os.path.isdir(file_folder):
3         for fileName in os.listdir(file_folder):
4            # print fileName
5             info(fileName) ##读取文件名字

fileName就是我们所获取的文件的名字。

第二部分:

获取文件名字后需要使用bs4模块来打开文件,因为多个文件,所以将解析过程写入函数内。

 1 def info(fileName):
 2     soup = bs4.BeautifulSoup(open(‘C:/Users/Administrator/Desktop/File/Filename/‘+fileName))
 3     a = soup.find_all(‘mxxx‘)
 4     info = []
 5     for i in a:
 6         dt=[]
 7         dt.append(i.find(‘xx‘).get_text().strip())
 8         dt.append( i.find(‘xx‘).get_text().strip())
 9         dt.append(i.find(‘xx‘).get_text().strip())
10         dt.append(i.find(‘xx‘).get_text().strip()+‘\n‘)
11         dt.append( i.find(‘xx‘).get_text().strip())
12         dt.append(i.find(‘xx‘).get_text().strip())
13         dt.append(float( i.find(‘xx‘).get_text().strip())  + float(i.find(‘xx‘).get_text().strip()))
14         info.append(dt)

打开文件夹后取出文件,并解析后使用BeautifulSoup的解析网页方法来获取数据,‘mxxx‘与‘xx‘都是树的名字。

第三部分:

将数据写入csv文件,这里的数据都是List格式,并需要遍历。

1 with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行!
2         csvfile.write(codecs.BOM_UTF8)  ##存入表内的文字格式
3         writer = csv.writer(csvfile)  #存入表时所使用的格式
4         writer.writerow([‘表头‘,‘表头‘,‘表头‘,‘表头‘])
5         writer.writerows(info) #写入表

这里的表头要和我们上面获取的数据列一致,不然会出现错误。写入文件的格式有 “ w ”," a+ "," ab+ "等,这里使用的是“ ab+ ”,去除空行!

还有我们如果存入的数据是1000000000这样的,在excel内是E+17的显示,所有在获取数据的时候最后面加  “\n”。最后写入表内,并打开!

原文地址:https://www.cnblogs.com/zhuPython/p/9183396.html

时间: 2024-10-12 21:05:02

Python数据写入csv格式文件的相关文章

Python从数据库读取数据写入json格式文件

#!/usr/bin/python# -*- coding: UTF-8 -*-########################################################################## File Name: addreplace.py# Author: yuhaitao# mail: [email protected]# Created Time: Fri 31 Mar 2017 07:05:13 PM PDT#####################

Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,最后一位会被置为0

问题描述: Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,CSV文件该列会用科学计数法表示,即使选择该列,点击数据--.>分列,固定宽度,列数据格式选择文本,最后一位仍然会被置为0. 解决方法: Oracle通过PL/SQL Developer导出数据为CSV格式,新建一个Excel文件,点击数据-->自文本,选择之前导出的CSV文件,文件类型分隔符号,选择逗号,[选中所有列],然后

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

java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我要将数据写成下面的样子: 1      |      2      |        3       |        4 5      |      6      |        8       |        9 也许看起来很简单的,因为每个数据所代表的长度是不一样的,也有可能编码不一样,所

Jsoup学习笔记9:Jsoup 解析saz文件,读取其中的htm文件到字符串,提取字符串中的数据写入csv文件中

本篇笔记将上篇笔记的操作做些改进,不再把saz文件中的htm文件解析出来,而是不解压直接读取其中的数据成字符串,基本思路如下: 1.自定义一个从文本文件读取内容到字符串的类:解析saz文件中的htm文档,将文件的内容读取到字符串中 2.自定义利用Jsoup解析htm字符串的类:利用Jsoup解析传入的htm字符串,将解析结果写入csv文件中 3.解析时,指定好文件路径,直接调用上面的两个工具类即可 示例代码如下: package com.daxiang.saztest; /** * 自定义一个从

Python怎么读写json格式文件

JSON-是一个轻量级的数据交换格式.点击打开百度百科 JSON维基百科:http://zh.wikipedia.org/wiki/JSON json模块 关于json的官方文档:点击打开链接 本文由@The_Third_Wave(Blog地址:http://blog.csdn.net/zhanh1218)原创.不定期更新,有错误请指正. Sina微博关注:@The_Third_Wave 如果这篇博文对您有帮助,为了好的网络环境,不建议转载,建议收藏!如果您一定要转载,请带上后缀和本文地址. d

php提取csv格式文件中的字符串出现的问题及解决办法

php带csv格式的数据要用到fgetcsv()函数. 用这下面的语句 $hd=fopen('test.csv','r'); $buf=fgetcsv($hd,1000,','); 打开一个test.csv格式的文件,文件中的内容以","号分开. 取出的第一行代表自动含义,比如 id,messaget,time等等. 从第二行开始表示具体的数据,比如1,消息,12:00. if($buf[1]=="some messages") echo "yes&quo

tensorflow读取数据之CSV格式

tensorflow要想用起来,首先自己得搞定数据输入.官方文档中介绍了几种,1.一次性从内存中读取数据到矩阵中,直接输入:2.从文件中边读边输入,而且已经给设计好了多线程读写模型:3.把网络或者内存中的数据转化为tensorflow的专用格式tfRecord,存文件后再读取. 其中,从文件中边读边输入,官方文档举例是用的CSV格式文件.我在网上找了一份代码,修改了一下,因为他的比较简略,我就补充一下遇到的问题 先贴代码 #coding=utf-8import tensorflow as tf

通过读取文件头部判断是否为CSV格式文件

通过读取文件头部判断是否为CSV格式文件 通过读取CSV文件头,判断文件是是否属于CSV文件类型,一般而言仅仅只是通过文件后缀来判断该文件所属的类型,这样是不合理的,只要更改一下文件后缀就无法识别这个文件到底是不是正确的文件格式,把可执行的文件后缀改为.CSV如果是通过判断文件后缀来识别文件类型,这样肯定是行不通的,因为exe的文件格式肯定不是CSV的格式,如果提前判断出这个文件头的这样就能定位这个文件是不是我们所需要的文件类型,避免对错误的文件进行解析.同样也可以在某种程度上保护服务器的安全.

接口测试-将数据写入csv中

将接口测试的返回值,写入到表格中 # 将testresult的数据写入csv中# w为覆盖写,a为追加写 import csv testresult = {"接口名称":"登录接口","测试结果":"测试通过"}file = open("test2.csv","w")for key,value,in testresult.items(): print(key,value) file.wr