• 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()+'
    ')
    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()+'
    ')
    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的显示,所有在获取数据的时候最后面加  “ ”。最后写入表内,并打开!

  • 相关阅读:
    js 获取浏览器版本号
    怎样写具体设计文档
    android PreferenceScreen使用笔记
    支持向量机通俗导论(理解SVM的三层境地)
    算法导论 第6章 堆排序(简单选择排序、堆排序)
    人脸识别算法初次了解
    循环队列
    ubuntu 下操作文件夹,出现Permission denied的解决的方法
    JFreeChart的使用
    隐藏Activity标题栏
  • 原文地址:https://www.cnblogs.com/zhuPython/p/9183396.html
Copyright © 2020-2023  润新知