欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python之?dāng)?shù)據(jù)存儲(chǔ)與讀取

系統(tǒng) 1851 0

1 存儲(chǔ)數(shù)據(jù)

1.1 媒體文件

存儲(chǔ)媒體文件有兩種主要的方式:只獲取文件 URL 鏈接,或者直接把源文件下載下來。在 Python 3.x 版本中, urllib.request.urlretrieve 可以根據(jù)文件的 URL 下載 文件:

            
              from urllib.request import urlretrieve
from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("http://www.pythonscraping.com")
bsObj = BeautifulSoup(html)
imageLocation = bsObj.find("a", {"id": "logo"}).find("img")["src"]
urlretrieve (imageLocation, "logo.jpg")
            
          

1.2 把數(shù)據(jù)存儲(chǔ)到CSV

CSV(Comma-Separated Values,逗號(hào)分隔值)是存儲(chǔ)表格數(shù)據(jù)的常用文件格式。Excel 和很多應(yīng)用都支持 CSV 格式,每一行都用一個(gè)換行符分隔,列與列之間用逗號(hào)分隔。常用就是獲取 HTML 表格 并寫入 CSV 文件。

            
              import csv

csvFile = open("../files/test.csv", 'w+')
try:
    writer = csv.writer(csvFile)
    writer.writerow(('number', 'number plus 2', 'number times 2'))
    for i in range(10):
        writer.writerow( (i, i+2, i*2))
finally:
    csvFile.close()

說明:
    如果 ../files/test.csv不存在,Python 會(huì)自動(dòng)創(chuàng)建文件(不會(huì)自動(dòng)創(chuàng)建文件夾)。如果文件已經(jīng)存                   在,Python 會(huì)用新的數(shù)據(jù)覆蓋 test.csv 文件。

運(yùn)行完成后,你會(huì)看到一個(gè) CSV 文件:

number,number plus 2,number times 2
0,2,0
1,3,2
            
          

1.3 MySQL數(shù)據(jù)庫

?MySQLdb庫或PyMySQL庫,用下面的命令下載并安裝PyMySQL:

            
              $ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-0.6.2 | tar xz
$ cd PyMySQL-PyMySQL-f953785/
$ python setup.py install
            
          
            
              import pymysql

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='1234', db='testdb', charset='utf8')
#使用cursor方法創(chuàng)建一個(gè)游標(biāo)
cur = conn.cursor()
#使用execute()方法來實(shí)現(xiàn)對數(shù)據(jù)庫的基本操作
cur.execute("SELECT * FROM pages WHERE id=1")
print(cur.fetchone())
cur.close()
conn.close()
            
          

1.4 Email

Python 有兩個(gè)包可以發(fā)送郵件: smtplib 和 email。?email 模塊里包含了許多實(shí)用的郵件格式設(shè)置函數(shù),可以用來創(chuàng)建郵件“包
裹”。smtplib 模塊用來設(shè)置服務(wù)器連接的相關(guān)信息。

            
              import smtplib
from email.mime.text import MIMEText
msg = MIMEText("The body of the email is here")
msg['Subject'] = "An Email Alert"
msg['From'] = "ryan@pythonscraping.com"
msg['To'] = "webmaster@pythonscraping.com"
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit()
            
          

2 文檔讀取

2.1 純文本

把文件存儲(chǔ)為在線的純文本格式并不常見,但仍然是存在的,并且大多數(shù)瀏覽器都可以很好地顯示純文本文件。

            
              from urllib.request import urlopen

textPage = urlopen("http://www.pythonscraping.com/pages/warandpeace/chapter1.txt")
print(str(textPage.read(), 'utf-8'))
            
          

2.2 讀取CSV文件

針對在線CSV文件我們常有以下處理措施:

? 手動(dòng)把 CSV 文件下載到本機(jī),然后用 Python 定位文件位置;
? 寫 Python 程序下載文件,讀取之后再把源文件刪除;
? 從網(wǎng)上直接把文件讀成一個(gè)字符串,然后轉(zhuǎn)換成一個(gè) StringIO 對象,使它具有文件的屬性。

這里介紹第三種方法,直接從網(wǎng)上讀取。?csv.DictReader函數(shù)可以很好地處理CSV文件,csv.DictReader 會(huì)返回把 CSV 文件每一行轉(zhuǎn)換成 Python 的字典對象返回。

            
              from urllib.request import urlopen
from io import StringIO
import csv

data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii', 'ignore')
dataFile = StringIO(data)
dictReader = csv.DictReader(dataFile)
print(dictReader.fieldnames)
for row in dictReader:
    print(row)


結(jié)果:
['Name', 'Year']
{'Name': "Monty Python's Flying Circus", 'Year': '1970'}
{'Name': 'Another Monty Python Record', 'Year': '1971'}
{'Name': "Monty Python's Previous Record", 'Year': '1972'}
            
          

2.3 PDF文件

PDFMiner3K 就是一個(gè)非常好用的庫(是 PDFMiner 的 Python 3.x 移植版)。它非常靈活,可以通過命令行使用,也可以整合到代碼中。它還可以處理不同的語言編碼,而且對網(wǎng)絡(luò)文件的處理也非常方便。

            
              下面的例子可以把任意 PDF 讀成字符串,然后用 StringIO 轉(zhuǎn)換成文件對象:

from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open

def readPDF(pdfFile):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, laparams=laparams)
    process_pdf(rsrcmgr, device, pdfFile)
    device.close()
    content = retstr.getvalue()
    retstr.close()
    return content

pdfFile = urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()
            
          

readPDF 函數(shù)最大的好處是,如果你的 PDF 文件在電腦里,你就可以直接把 urlopen 返回的對象 pdfFile 替換成普通的 open() 文件對象:pdfFile = open("../pages/warandpeace/chapter1.pdf", 'rb')。主要是針對純文本


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美一级三级 | 国产午夜精品在线 | 免费国产视频在线观看 | 最新亚洲视频 | 久草资源总站 | 久久99热这里只频精品6中文字幕 | 精品久久香蕉国产线看观看亚洲 | 5060午夜网 | 日本成日本片人免费 | 一级黄色毛片视频 | 91看片官网 | 多男操一女视频 | 欧美精品v国产精品v日韩精品 | ⅴideo裸体秀hd | 久久精品国产精品亚洲综合 | 99久久精彩视频 | 亚洲精品久久久久久中文字幕小说 | 国产欧美日韩在线观看 | 天天做天天爱夜夜大爽完整 | 欧美成在线视频 | 91视频播放| 免费网站观看 | 极品xxxx欧美一区二区 | 九月婷婷开心九月 | 国产乱码一区二区三区 | 精品久久九九 | 国产在线一区二区三区 | www.黄色网.com| 日韩五月天 | 国产精品国产三级国产专区5o | 中文字幕av亚洲精品一部二部 | 午夜视频免费 | 国产免费观看视频 | 国产乱仑 | 毛片成人永久免费视频 | 草草草在线观看 | 黄色的视频免费观看 | www.黄色大片 | 久久久精品欧美 | 免费观看国产大片资源视频 | 国产精品伊人 |