第八章 永久存储[DDT书本学习 小甲鱼]【1】

第八章 永久存储[DDT书本学习 小甲鱼]【1】

8.1 文件:因为懂你,所以永恒
CPU-内存
CPU-硬盘
==========================================================
8.1.1打开文件 open()函数打开并且返回文件对象
open()有很多参数,作为初学者,先关注第一和第二个参数即可。
open(带路径的文件名,指定文件打开模式)
----------------------------------------------
"r"只读模式(默认)
"w"写入模式 覆盖已经存在的文件
"x"如果文件存在,此模式打开引发异常
"a"以写入模式打开,文件若存在,末尾追加写入
"b"以二进制打开文件
"t"以文本模式打开(默认)
"+"可读写模式
"U"通用换行符支持
----------------------------------------------
f=open("命令.txt")
没有消息就是好消息,文件成功被打开了。
============================================================
8.1.2 文件对象的方法
close()关闭文件
read(size=-1)从文件读取size个字符,未给定或者为负值时候,读取剩余所有字符,
作为字符串返回
readline()从文件中读取一整行字符串
write(str)将字符串str写入文件
writelines(seq)向文件写入字符串序列,seq应该是一个返回字符串的可迭代对象
seek(offset,from)在文件中移动指针,从from(0-起始 1-当前 2-末尾)偏移offset个字节
tell()返回当前在文件中的位置
==============================================================
8.1.3文件的关闭
close()用于关闭文件。忘记关闭Python最后会自动关闭文件。但是防止断电丢失数据,养成
使用完成后及时关闭文件的习惯。
8.1.4文件的读取和定位
文件的读取方法有很多:用文件对象的read()和readline()方法。也可以直接list(f)或者迭代
来读取。
read()是按照字节为单位读取,如果不设置参数,会全部读取,指针指向文件末尾。
tell()方法可以告诉你当前文件指针的位置。
代码如下
f=open("命令.txt",encoding="UTF-8")
print(f.read())
print(f.tell())
print(f.seek(0,0))
print(f.read(4))
print(f.tell())
----------------------------
6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值
而setdefault()方法在找不到的时候,进行设置添加值。
a={1:"one",2:"two",3:"three",4:"four"}
print(a.setdefault(3))
print(a.setdefault(5))
247
0
6. s
4
===========================
f=open("命令.txt",encoding="UTF-8")
print(f.readline())
------------------------readline()读取一行,直到遇到\n为止
6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值
========================================
列表也很强大,什么都可以往里面放!
print(list(f))
------------------
['6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值\n', '而setdef...]
========================================================
用了列表去装载后,可以发现,元素个数由行数决定了,列表元素个数=行数。
f=open("命令.txt",encoding="UTF-8")
f.seek(0,0)
lines=list(f)
for each in lines:
print(each)
------------------上述没有错,只是有点酒精灯烧开水----效率低。因f本身支持迭代!
f=open("命令.txt",encoding="UTF-8")
f.seek(0,0)
for each in f:
print(each)
----------------------
6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值

而setdefault()方法在找不到的时候,进行设置添加值。

a={1:"one",2:"two",3:"three",4:"four"}

print(a.setdefault(3))

print(a.setdefault(5))

=====================================================================
8.1.5 文件的写入
如果要写入文件,请确保打开之前模式有"w"或"a",否则出错
f=open(r"C:\Users\Daodantou\Desktop\record.txt",encoding="UTF-8")
f.write("*万岁")
------------- 写入失败 -----------------
Traceback (most recent call last):
File "C:/Users/Daodantou/PycharmProjects/s14/day7/t2.py", line 2, in <module>
f.write("*万岁")
io.UnsupportedOperation: not writable
=================================================改写代码
f=open(r"C:\Users\Daodantou\Desktop\record.txt","a",encoding="UTF-8")
f.write("*万岁")
f.close()
--------------------------------------------------------
======我就是个跟屁虫。=======*万岁
==========================================================================
f=open(r"C:\Users\Daodantou\Desktop\record.txt","w",encoding="UTF-8")
f.write("*万岁")
f.close()
---------------------------
*万岁
==============================================================================

上一篇:try..catch捕获不到空指针等异常的问题


下一篇:TRY/TRM — 产品全生命周期数据关联和追溯