文章目录

  • 文件的基本操作
    • 文件打开和关闭
    • 文件打开模式
    • 读取/写入文件
  • StringIO和BytesIO
    • 内存假文件
    • 上下文管理
  • os模块
    • os模块 的目录及文件操作
    • os.path模块
  • 小练习-爬取王者荣耀李信台词保存到txt文件。

文件的基本操作

文件打开和关闭

打开文件: f = open(file_path, mode='r')
传入表示文件路径的字符串,会返回一个文件对象,
第一个参数是要打开文件的路径
第二个参数是打开模式关闭文件: f.close()
调用给定文件对象的close方法

文件打开模式

模式           描述r           以只读方式打开文件,文件指针默认放在文件开头,文件不存在则报错r+          打开一个文件用于读写,文件指针默认放在文件开头,文件不存在则报错w             打开一个文件只用于写入,如果该文件已存在则将其覆盖,如果不存在,创建新文件W+           打开一个文件用于读写,如果该文件已存在则将其覆盖,如果不存在,创建新文件a          打开一个文件用于追加,如果文件已存在,文件指针会放在文件结尾(也就是说,新的内容将会被写到已有内容之后)如果不存在,创建新文件进行写入a+          打开一个文件用于读写,如果文件已存在,文件指针会放在文件结尾,文件打开时会是追加模           式,如果不存在,创建新文件用于读# 其他模式:rb   rb+     wb     wb+    ab    ab+
加上b,以二进制的格式打开文件,进行上述操作。

读取/写入文件

操作 方法
读取指定大小的内容 f.read()
读取一行的内容 f.readline()
读取多行内容 f.readlines()
写入内容 f.write(data)
写入多行(需要自己加换行符) f.writelines(lines)
立即刷新缓冲 f.flush()
获得游标位置 f.tell()
调整游标位置 f.seek(position)

StringIO和BytesIO

内存假文件

import io# 字节流
# 创建IO操作
sio = io.StringIO()
# 读取
sio.getvalue()
# 写入
sio.write(str(i))'''
StringIO在内存中如同打开文件一样操作字符串,因此也有很多方法
当创建的StringIO调用 close() 方法时,在内存中的数据会丢失
'''# 二进制流
# 创建IO操作
sio = io.BytesIO()
# 读取
sio.getvalue()
# 写入
sio.write(str(b'abc'))BytesIO 和 StringIO 类似,但是BytesIO操作的是Bytes数据,decode解码

上下文管理

格式:with open(file_path, mode='r', encoding='utf-8') as f:
好处:使用with打开文件,文件不需要自己关闭,会在跳出with时自动执行f.close()
参数:file_path:文件路径mode:打开方式encoding:是编码格式

os模块

os模块 的目录及文件操作

显示当前路径: os.getcwd()
展示当前目录内容: os.listdir(path)
改变当前路径: os.chdir(path)
创建目录: os.mkdir(文件名)
删除目录: os.rmdir(文件名)
使用Linux命令:os.system()
删除文件:os.remove(文件名)
重命名:os.rename("oldname","new")

os.path模块

针对属性

路径拼接:                os.path.join(path1, path....)
所在目录/父级目录:          os.path.dirname
基本短路径:              os.path.basename(路径)
绝对路径:               os.path.abspath()
相对路径:               os.path.relpath
资源大小:               os.path.getsize 获取字节
资源时间:               os.path.getctime /创建getatime /访问getmtime修改
路径是否存在:             os.path.exists
是否是目录:              os.path.isdir
是否是文件:              os.path.isfile
是否是绝对路径:            os.path.isabs

小练习-爬取王者荣耀李信台词保存到txt文件。

# 导入os模块
import os
# 导入requests模块
import requests
# 导入解析模块
from lxml import etree      # 目标url,页面无法直接复制
url = 'https://www.gmz88.com/jiaocheng/144398.html'
# 请求头,伪装成浏览器进行请求
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4209.2 Safari/537.36",
}
# 发送请求,使用res接受响应
res = requests.get(url, headers=headers)
# 使用etree.HTML对响应进行格式化处理,方便解析
html = etree.HTML(res.text)        # 提取台词数据到列表中
data_list = html.xpath('//div[@class="info_tex_center"]/p/text()')# 如果lixin文件夹不存在,则创建
if not os.path.exists('李信'):os.mkdir('李信')
# 在文件夹‘李信’内打开一个名为‘tc’的txt文档
with open('李信/tc.txt', 'w', encoding='utf-8') as f:# 从列表中循环取出数据for data in data_list:# 对数据进行去空格处理,并转成字符串格式,方便后续操作data = str(data.strip())# 此时如果将内容输出到控制台会发现有多余数据,而且多余数据长度较长所以进行一个长度判断if len(data)<35:# 将处理好的数据写入'tc.txt'文档,并加‘/n’进行换行f.write(data+'\n')

这样,这个小练习就完成了,下面是效果

此练习比较简单,重在练习本章所学内容,如果对爬虫部分感兴趣的看官可以移步爬虫分类进行了解。

文件的基本操作--利用爬取的王者荣耀李信台词进行练习相关推荐

  1. 数据藏在json文件中,如何爬取---以王者荣耀官网为例

    此前写了一个爬虫基础案例---爬取王者荣耀英雄与技能介绍 python爬虫------王者荣耀英雄及技能爬取并保存信息到excelhttps://blog.csdn.net/knighthood200 ...

  2. Python如何爬取《王者荣耀盒子》APP

    Python如何爬取<王者荣耀盒子>APP 1.安装fiddler 百度网盘下载链接:https://pan.baidu.com/s/1EjGfVrYpAaweitUxv7DS8w 提取码 ...

  3. 用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话

    大家好,我是辰哥~ 今天辰哥带大家分析一波当前热门手游<王者荣耀>英雄皮肤,比如皮肤上线时间.皮肤类型(勇者:史诗:传说等).价格. 获取数据 数据来源于<王者荣耀官方网站>, ...

  4. python 爬取手机王者荣耀盒子出装

    这是jack 老哥的教程,自己修改了一下,原URL:https://blog.csdn.net/c406495762/article/details/76850843 要点:1.hero.ljust( ...

  5. Scrapy框架爬取下载王者荣耀英雄壁纸

    #wzry.py项目文件 import scrapy from selenium import webdriver from wzrypro.items import WzryproItem from ...

  6. python selenium爬取斗鱼王者荣耀直播页面

    目标网站 在这里插入图片描述 抓取第一个直播的标题 现在来实现批量抓取 这里用xpath匹配 第一页抓取完毕,开始抓取剩下的页数 一共31页,每页数据为一个列表,全部数据套在一个大列表中 以下是完整代 ...

  7. Python 爬虫 之 爬虫的一些基本知识和基本操作(爬取视频、图片、获取网页源码等)整理

    Python 爬虫 之 爬虫的一些基本知识和基本操作(爬取视频.图片.获取网页源码等)整理 目录

  8. 爬取服务器public文件夹,数据采集任务——爬取四川大学公共管理学院主页新闻实验报告...

    1.实验目的和要求 1.1实验目的 爬取公共管理学院网站上的所有新闻,了解和熟悉网络信息采集的相关技术. 1.2实验要求 用任何可以用的方法,爬取四川大学公共管理学院(http://ggglxy.sc ...

  9. python使用selenium爬英雄联盟/王者荣耀壁纸 附源码

    文章目录 LOL壁纸 分析 写代码 王者荣耀壁纸 分析 写代码 源码 lol 王者荣耀 之前看到好多爬王者荣耀和英雄联盟壁纸的,现在有时间,自己也搞个玩玩 记录一下,也帮助一下想要学习的朋友 LOL壁 ...

最新文章

  1. boost:进程管理
  2. ShapeMatching Using Fourier Descriptor
  3. 力扣——机器人能否返回原点
  4. python文本去重_Python做文本按行去重的实现方法
  5. 软件工程----8面向对象设计
  6. android 外部存储列表,如何获取Android设备的已安装外部存储列表
  7. JAVA对list集合进行排序Collections.sort()
  8. 房贷断供了,房子就要被收走,首付款怎么办?
  9. iOS系统什么天气app可以访问锁屏?
  10. 新闻发布系统,我学会了什么?
  11. 读书笔记三——你的灯亮着吗
  12. win7看不到共享打印机的计算机,win7搜不到共享打印机怎么办?-解决win7找不到共享打印机的方法 - 河东软件园...
  13. 如何在ArcGIS中打开卫星影像
  14. linux卸载软件垃圾清理,Ubuntu20.04系统卸载软件及清理系统垃圾缓存以及新力得...
  15. IEEE文献高级检索
  16. 养生篇01 (饭水分离法)
  17. 一个整人的vbs脚本(yzy原创)
  18. 网站域名DNS被劫持了如何解决?
  19. Android单应用开多进程与单进程跑多应用
  20. java基于springboot畜牧场信息管理系统

热门文章

  1. 很火的微信聊天界面个性签名设置方法,除了好看更重要的是...
  2. 强大合作伙伴生态系统助力 Denodo 在大中华区不断发展壮大
  3. 会议期刊论文发表介绍(计算机科学领域)【转载】
  4. 关于YY1139-2013心电诊断设备的共模抑制测试项的理解
  5. 2020 阿里最新面试题,掌握这些轻松拿offer
  6. 全志H616高画质芯片香橙派Orange Pi Zero2开发板音频测试说明
  7. 一个很不错的bash脚本编写教程
  8. 大学计算机手写笔记,法国大学教师发电脑禁令,研究显示:手写记笔记成绩更佳...
  9. 华为云数据治理生产线DataArts,让“数据‘慧’说话”
  10. follow Sam哥 OS 课程的漫长之路