TXT文本存储

3. 张开药情势

在刚刚的实例中,open()措施的第一个参数设置成了a,那样在历次写入文本时不会清空源文件,而是在文书末尾写入新的内容,那是生龙活虎种文件张开药格局。关于文件的展开方式,其实还会有任何二种,这里大概介绍一下。

  • r:以只读方式张开文件。文件的指针将会放在文件的发端。那是暗许方式。
  • rb:以二进制只读情势展开多个文书。文件指针将会放在文件的起头。
  • r+:以读写形式展开四个文本。文件指针将会放在文件的发端。
  • rb+:以二进制读写格局张开八个文书。文件指针将会放在文件的启幕。
  • w:以写入措施张开一个文件。倘若该文件已存在,则将其遮住。要是该公文不设有,则开创新文件。
  • wb:以二进制写入措施张开一个文本。借使该公文已存在,则将其覆盖。若是该公文不设有,则创设新文件。
  • w+:以读写情势展开七个文件。假若该文件已存在,则将其遮住。要是该文件一纸空文,则开立异文件。
  • wb+:以二进制读写格式展开多少个文书。假如该公文已存在,则将其覆盖。假诺该文件不设有,则创制新文件。
  • a:以追加方式展开五个文本。假设该公文已存在,文件指针将会放在文件结尾。也便是说,新的开始和结果将会被写入到原来就有内容之后。如若该文件不设有,则创建新文件来写入。

  • ab:以二进制追加方式展开一个文书。即使该文件已存在,则文件指针将会放在文件结尾。也正是说,新的故事情节将会被写入到本来就有内容之后。若是该公文不设有,则开立异文件来写入。

  • a+:以读写情势展开一个文件。假如该公文已存在,文件指针将会放在文件的最终。文件展开时会是增添格局。假使该文件荒诞不经,则创建新文件来读写。
  • ab+:以二进制追加情势展开叁个文书。假如该公文已存在,则文件指针将会放在文件结尾。假如该文件不设有,则成立新文件用于读写。

1. 本节目的

本节中,大家要封存腾讯网上“开掘”页面包车型客车“火爆话题”部分,将其难题和答案统黄金时代封存成文本方式。

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文件的方法,这种方法大概易用,操作便捷,是蓬蓬勃勃种最宗旨的保留数据的办法。

 

将数据保存到TXT文本的操作特轻巧,何况TXT文本大致包容任何平台,然则那有个毛病,那正是不便于检索。所以即使对寻觅和数据布局须求不高,追求方便第大器晚成的话,能够动用TXT文本存储。本节中,大家就来看下怎样行使Python保存TXT文本文件。

2. 为主实例

第后生可畏,可以用requests将网页源代码获取下来,然后利用pyquery拆解剖析库深入深入分析,接下去将提取的标题、回答者、回答保存到文本,代码如下:

import requests
from pyquery import PyQuery as pq

url = '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).text
doc = 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文件,其剧情如图所示。

 

图片 1

这么销路好问答的从头到尾的经过就被保留成文本方式了。

这里open()方式的第二个参数即要保存的对象文件名称,第一个参数为a,代表以扩展格局写入到文本。别的,大家还钦赐了文本的编码为utf-8。最后,写入达成后,还亟需调用close()艺术来关闭文件对象。

发表评论

电子邮件地址不会被公开。 必填项已用*标注