芝麻HTTP:TXT文本儲存,芝麻txt文本儲存

來源:互聯網
上載者:User

芝麻HTTP:TXT文本儲存,芝麻txt文本儲存

將資料儲存到TXT文本的操作非常簡單,而且TXT文本幾乎相容任何平台,但是這有個缺點,那就是不利於檢索。所以如果對檢索和資料結構要求不高,追求方便第一的話,可以採用TXT文本儲存。本節中,我們就來看下如何利用Python儲存TXT文字檔。

1. 本節目標

本節中,我們要儲存知乎上“發現”頁面的“熱門話題”部分,將其問題和答案統一儲存成文本形式。

2. 基本執行個體

首先,可以用requests將網頁原始碼擷取下來,然後使用pyquery解析庫解析,接下來將提取的標題、回答者、回答儲存到文本,代碼如下:

import requestsfrom pyquery import PyQuery as pqurl = 'https://www.zhihu.com/explore'headers = {    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}html = requests.get(url, headers=headers).textdoc = pq(html)items = doc('.explore-tab .feed-item').items()for item in items:    question = item.find('h2').text()    author = item.find('.author-link-line').text()    answer = pq(item.find('.content').html()).text()    file = open('explore.txt', 'a', encoding='utf-8')    file.write('\n'.join([question, author, answer]))    file.write('\n' + '=' * 50 + '\n')    file.close()

這裡主要是為了示範檔案儲存的方式,因此requests異常處理部分在此省去。首先,用requests提取知乎的“發現”頁面,然後將熱門話題的問題、回答者、答案全文提取出來,然後利用Python提供的open()方法開啟一個文字檔,擷取一個檔案操作對象,這裡賦值為file,接著利用file對象的write()方法將提取的內容寫入檔案,最後調用close()方法將其關閉,這樣抓取的內容即可成功寫入文本中了。

運行程式,可以發現在本地產生了一個explore.txt檔案,其內容。

 

這樣熱門問答的內容就被儲存成文本形式了。

這裡open()方法的第一個參數即要儲存的目標檔案名稱,第二個參數為a,代表以追加方式寫入到文本。另外,我們還指定了檔案的編碼為utf-8。最後,寫入完成後,還需要調用close()方法來關閉檔案對象。

3. 開啟檔案

在剛才的執行個體中,open()方法的第二個參數設定成了a,這樣在每次寫入文本時不會清空源檔案,而是在檔案末尾寫入新的內容,這是一種檔案開啟檔案。關於檔案的開啟檔案,其實還有其他幾種,這裡簡要介紹一下。

  • r:以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
  • rb:以二進位唯讀方式開啟一個檔案。檔案指標將會放在檔案的開頭。
  • r+:以讀寫方式開啟一個檔案。檔案指標將會放在檔案的開頭。
  • rb+:以二進位讀寫方式開啟一個檔案。檔案指標將會放在檔案的開頭。
  • w:以寫入方式開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
  • wb:以二進位寫入方式開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
  • w+:以讀寫方式開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
  • wb+:以二進位讀寫格式開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
  • a:以追加方式開啟一個檔案。如果該檔案已存在,檔案指標將會放在檔案結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,則建立新檔案來寫入。
  • ab:以二進位追加方式開啟一個檔案。如果該檔案已存在,則檔案指標將會放在檔案結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,則建立新檔案來寫入。
  • a+:以讀寫方式開啟一個檔案。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,則建立新檔案來讀寫。
  • ab+:以二進位追加方式開啟一個檔案。如果該檔案已存在,則檔案指標將會放在檔案結尾。如果該檔案不存在,則建立新檔案用於讀寫。
4. 簡化寫法

另外,檔案寫入還有一種簡寫方法,那就是使用with as文法。在with控制塊結束時,檔案會自動關閉,所以就不需要再調用close()方法了。這種儲存方式可以簡寫如下:

with open('explore.txt', 'a', encoding='utf-8') as file:    file.write('\n'.join([question, author, answer]))    file.write('\n' + '=' * 50 + '\n')

如果想儲存時將原文清空,那麼可以將第二個參數改寫為w,代碼如下:

with open('explore.txt', 'w', encoding='utf-8') as file:    file.write('\n'.join([question, author, answer]))    file.write('\n' + '=' * 50 + '\n')

上面便是利用Python將結果儲存為TXT檔案的方法,這種方法簡單易用,操作高效,是一種最基本的儲存資料的方法。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.