爬虫怎麽爬 从零开始的爬虫自学 DAY24 python档案读写open( )

前言

各位早安,书接上回我们将程序码改得更方便阅读,还加上抓取连结的功能,今天我们要来介绍明天实作储存资料功能会用到的 python 档案读写功能

python档案读写open()

open 方法是 python 对档案做处理时常用的方法

变数名 = open("档名", "模式", encoding="UTF-8")
变数名.write()
变数名.read()
变数名.close()

下面就让我们来认识它吧

首先建立一个档案 file.py 我们今天要用它来练习
https://ithelp.ithome.com.tw/upload/images/20211007/20140149G2TMaV7tNC.jpg

变数名 = open("档名", "模式" , encoding="UTF-8")

open 的功能是打开档案 如果没这个档案则会建立一个
档名的部分则是依照你要甚麽档案去取对应的副档名
今天我们先用 "file.text" 文字文件的档案来练习
模式则是决定我们的 open 方法可以有哪些功能的权限
常用的如下
1."w" : 以覆写模式打开档案
2."r" : 以唯读模式打开档案
3."a" : 以续写模式打开档案

如果是写入模式则不能读取 反之亦然

最後的 encoding="UTF-8") 是因为我们爬取的资料有中文
所以要指定编码方式为 UTF-8 中文才能正常显示

write()

我们用

file = open("file.text", "w", encoding="UTF-8")
file.write("早安您好")

注意模式是 "w" 喔
来写入字串

执行之後下方没有输出 这是因为我们没有 print
https://ithelp.ithome.com.tw/upload/images/20211007/20140149jbF6IWPw95.jpg
但是可以看到旁边多出我们刚刚写入的档案
它本来不存在 所以系统自动帮我们建立

点开来
https://ithelp.ithome.com.tw/upload/images/20211007/20140149V0TlAE5EYM.jpg
刚刚写入的资料就在这里
你可以把 encoding="UTF-8" 删掉再执行看看 会变成乱码喔

read()

我们用

file = open("file.text", "r", encoding="UTF-8")
print(file.read())

注意模式要改成 "r" 喔
来读取资料

我们可以到 file.text 去改里面的内容
https://ithelp.ithome.com.tw/upload/images/20211007/20140149Tbhs95rodZ.jpg
记得按 CTRL+S 储存变更

读取成功
https://ithelp.ithome.com.tw/upload/images/20211007/20140149kcl32bzdFU.jpg
可以看到输出的是改过的内容

close()

close() 又是用来做甚麽的呢
它是用来关闭我们 open() 开启的档案的
那为啥要关闭呢 不关会怎样
是为了释放运算资源喔
如果不关闭会等到程序执行完自动释放
所以像练习时的简单程序影响不大
但是一旦程序复杂 执行时间更长
就可能占用耗尽资源导致程序当掉
或是造成缓存的信息不见 甚至档案损坏
所以在每个档案用不到时要养成好习惯随手 close() 掉它喔

今天我们只介绍了档案读写处理最最基本的部分 也是明天会加进去的功能
还有很多东西可以学习 有兴趣的可以去学相关知识喔

参考资料:
https://www.runoob.com/python/file-methods.html


早安闲聊区

你知道吗?

恐龙其实可能有羽毛喔

每日二选一

你觉得是先有蛋还是先有鸡呢


<<:  EP 30: Archive and Publish TopStore App for iOS in Visual Studio

>>:  Day 23: 174. Dungeon Game

DAY 27:Chain of Responsibility,将实作透过串串乐串起来

什麽是 Chain of Responsibility? 将 if...else 的行为抽象成物件,...

卡夫卡的藏书阁【Book11】- Kafka Connect 2

Step3. 新增 Source connector 可以查看一下当前的 connector $ c...

[Day 20] 回测与报表

一、说明 老样子,又到了喜闻乐见的程序整理环节,我们今天会完成下列事项 资料拆分:以1:1比例分成训...

Day12:终於要进去新手村了-Javascript-资料型态转换-将字串变成数字

前两篇文章中有认识到了变数是要用来放资料的,但是有时候会遇到资料内容需要不同的类型,比如说数字,它可...