文件存储

1.TXT文本存储

  将数据保存到TXT文本的操作非常简单,而且TXT文本几乎兼容任何平台,但是有个缺点就是不利于检索,所以如果对检索和数据结构要求不高,追求方便第一的话,可以 采用TXT文本存储。

基本实例

  首先可以用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提取了知乎发现页面,然后将热门的问题、回答者、答案全文提取出来,然后利用了Python提供的open()方法打开一个文件,获取文件操作对象,然后利用对象的write方法将提取的内容写入文件,最后调用close方法将其关闭,这样抓取的内容即可成功写入文本中。

2.Json文件存储

  Json,全称为 JavaScript Object Notation, 也就是 JavaScript 对象标记,通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高,它是一种轻量级的数据交换格式,本节我们来了解一下利用 Python 保存数据到 Json 文件的方法。

 读取Json:

 

import json
str = '''
[{
    "name": "Bob",
    "gender": "male",
    "birthday": "1992-10-18"
},{
    "name": "Selina",
    "gender": "female",
    "birthday": "1995-10-18"
}]
'''
print(type(str))
data = json.loads(str)
print(data)
print(type(data))

 

输出Json:

import json
data = [{
    "name": "Bob",
    "gender": "male",
    "birthday": "1992-10-18"
}, {
    "name": "王银滨",
    "gender": "",
    "birthday": "1997-01-01"
}]
with open('data.json', 'w', encoding='utf-8') as file:
    file.write(json.dumps(data, indent=2, ensure_ascii=False))

参数indent代表缩进字符个数;ensure_ascii为False,表示另外规定文件输出的编码。

3.CSV文件存储

  CSV,全称叫做 Comma-Separated Values,中文可以叫做逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分隔,每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符,不过所有记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式,它相比 Excel 文件更加简介,XLS 文本是电子表格,它包含了文本、数值、公式和格式等内容,而 CSV 中不包含这些内容,就是特定字符分隔的纯文本,结构简单清晰,所以有时候我们用 CSV 来保存数据是比较方便的,本节我们来讲解下 Python 读取和写入 CSV 文件的过程。

 写入:

import csv
with open('data.csv', 'w') as csv_file:
    writer = csv.writer(csv_file, delimiter=' ')  # delimiter参数修改列于列之间的分隔符
    writer.writerow(['id', 'name', 'age'])
    writer.writerow(['1001', 'Mike', 20])
    writer.writerow(['1002', 'Bob', 22])
    writer.writerow(['1003', 'Jordan', 21])

 

首先打开了一个 data.csv 文件,然后指定了打开的模式为 w,即写入,获得文件句柄,随后调用 csv 库的 writer() 方法初始化一个写入对象,传入该句柄,然后调用 writerow() 方法传入每行的数据即可完成写入。

 读取:

import csv

with open('data.csv', 'r', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

列表形式:

import pandas as pd

df = pd.read_csv('data.csv')
print(df)

posted @ 2019-05-27 09:26  LAworker  阅读(345)  评论(0)    收藏  举报