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”。最后寫入表內,並打開!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM