CSV文件模块的使用

---恢复内容开始---

1、CSV模块使用流程

   1、导入模块

     impport CSV

   2、打开文件(xxx.csv)

    with open('xxx.csv','a',encoding='utf-8')  as  f:

      1、a和 a+   ‘追加’功能

        a  追加写

        a+ 追加写读(先写后读)

 

      2、r 和 r+   

       r 只读

       r+读写,先读后写

     

       3、w,w+

        w 只写

        w+写读 先写后读

  3、初始化写入对象

    writer = csv.wirter()

 

  4、写入数据    

    writer.writerow(['孙悟空', '兰陵王'])

    

案例:

  猫眼电影top10榜单的爬取

  1、网址:url

  2、目标:爬取自己想要的文件

  3、保存本地:csv文件

  4、步骤

    1、找url规律

     第一页:https://maoyan.com/board/4?offset=0

     第4页:https://maoyan.com/board/4?offset=30

     第n页:offset=(n-1)*10

    2、写正则表达式

      '<div class="movie-item-info".*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S

练习:爬取猫王top10信息

from urllib import request
import re
import time
import csv


class MaoyanSpider(object):
     def __init__(self):
        self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"}
        self.page = 1
        # 用来计数

     def get_page(self, url):
        req = request.Request(url, headers=self.headers)
        res = request.urlopen(req)
        html = res.read().decode('utf-8')
        # 直接调用解析函数
        self.parse_page(html)

     def parse_page(self,html):
         p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?class="releasetime">(.*?)</p>',re.S)
         #p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S)
         r_list = p.findall(html)
         # 直接调用保存函数
         # r_list:[('霸王别姬','张国荣','1993'),(),()]
         self.write_csv(r_list)

    # 保存数据函数
     def   write_csv(self,r_list):
         with open('猫眼电影top10.csv','a') as f:
            writer = csv.writer(f)
            # 依次写入每个电影信息
            for r_t in r_list:
                film = [
                    r_t[0].strip(),
                    r_t[1].strip(),
                    r_t[2].strip()
                    ]
                writer.writerow(film)


    #主函数
     def work_om(self):
         for pn in range(0,41,10):
            url = 'https://maoyan.com/board/4?offset=%s'%str(pn)

            self.get_page(url)
            print('第%d页爬取成功'%self.page)
            self.page += 1
            time.sleep(4)

if __name__ =='__main__':
    begin = time.time()
    spider = MaoyanSpider()
    spider.work_om()
    end = time.time()
    print("执行时间%.2f"%(end - begin))

  

运行截图:

 

 

 

---恢复内容结束---

转载于:https://www.cnblogs.com/followlqc/p/11083285.html

使用Python的csv模块可以很方便地读取CSV文件。首先,你需要确保你已经关闭了正在使用CSV文件。然后,你可以按照以下步骤来读取CSV文件: 1. 首先,导入csv模块:`import csv` 2. 打开CSV文件并创建一个文件对象:`file = open('filename.csv', 'r')` 3. 通过csv模块的reader函数创建一个reader对象:`reader = csv.reader(file)` 4. 使用for循环遍历reader对象,逐行读取CSV文件的内容:`for row in reader:` 5. 在循环中,可以通过索引访问每一列的值,例如`row`代表第一列的值。 下面是一个示例代码,演示了如何使用csv模块读取CSV文件: ``` import csv # 打开CSV文件并创建一个文件对象 file = open('filename.csv', 'r') # 通过csv模块的reader函数创建一个reader对象 reader = csv.reader(file) # 使用for循环遍历reader对象,逐行读取CSV文件的内容 for row in reader: # 在循环中,可以通过索引访问每一列的值 print(row<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用python自带CSV模块读写csv文件](https://blog.csdn.net/qq_42215863/article/details/124358808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值