中国史之【涂山之会】:
禹在确立王权以及建都阳翟(zhai)(今河南禹县)后,召集夏和夷的部落首领于涂山(今安徽蚌(beng)埠(bu)禹会)会盟。此番会盟是夏朝正式建立的标志,确立了夏朝的统治秩序。
-来源:全历史APP
今天讲python的文件对象。有需要的也可以直接去我的github查看全部笔记:
https://github.com/JackKoLing/python_notes_with_ten_days
俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。对于环境的配置,可以参考以下两篇:
- win10版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(win10版) - Linux版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(Ubuntu20.04版)
1 python的文件对象
- 文件系统:OS用于在磁盘上组织文件的方法
- 文件:存储在某种长期储存设备或临时存储设备中的一股“数据流”,归属于文件系统管理之下
- 概括地说,文件是计算机中由OS管理的具有名字的存储区域
- 在linux系统上,文件被看做是字节序列
var_name = open(filename[mode, [bufsize]])
2 文件的打开模式
- 简单模式:
- r: 只读
- w: 写入
- a: 附加
- 在模式后使用‘+’表示同时支持输入、输出操作,如r+、w+、a+
- 在模式后附加‘b’表示以二进制方式打开,如rb、wb、ab、rb+、wb+、ab+
3 缓冲参数
- 0:禁用
- 负数:使用系统默认缓冲
- 1:使用一行数据的缓冲
- 2+:指定缓冲空间大小
4 示例
f1 = open('../day6/a.txt', 'r')
print(type(f1)) # 返回的是文件对象
print(f1.__next__()) # 使用对象的内置函数__next__()读取一行
print(f1.__next__())
print(f1.__next__())
>>>
<class '_io.TextIOWrapper'>
hello python
i am learning
f1.close() # 关闭文件,现在一般使用with打开文件,这样不用手动close
f1 = open('../day6/a.txt', 'r')
print(f1.fileno()) # 返回文件的描述符号
>>>
4
f1 = open('../day6/a.txt', 'r')
print(f1.readlines()) # 返回整个文件所有行,包括字符串,并生成列表
>>>
['hello python\n', 'i am learning\n']
f1 = open('../day6/a.txt', 'r')
print(f1.readline()) # 返回文件的一行
>>>
hello python
print(f1.tell()) # 返回当前文件指针的所在字节位置,注意指针一行一行跳,不可逆
>>>
14
file.seek(offset [whence]):
- offset:指定偏移量
- whence:指定从哪里开始偏移
其中,0:从文件头开始,1:从当前位置,2:从文件尾部
print(f1.tell())
f1.seek(0) # 默认是从文件头开始
print(f1.tell())
>>>
14
0
f1 = open('../day6/a.txt', 'r')
print(f1.read(14)) # 指定读出14个字节,若不给参数则默认读出所有字节
print(f1.tell())
>>>
hello python
i
15
print(f1.name)
f1.close()
>>>
../day6/a.txt
f1 = open('../day6/a.txt', 'r+')
print(f1.__next__())
f1.seek(0, 2) # 跳到文件尾部
print(f1.tell())
f1.write('new line.\n') # 写进去,注意打开模式
print(f1.tell())
f1.close()
>>>
hello python
197
208
f2 = open('../day6/b.txt', 'w+') # 若原来不存在,则自己创建这个文件
f2.write('haha')
f2.close()
f3 = open('../day6/c.txt', 'w+')
for line in (i**2 for i in range(1, 11)):
f3.write(str(line) + '\n')
f3.close()
f4 = open('../day6/d.txt', 'w+')
l1 = [i**2 for i in range(1, 11)]
l2 = []
for i in l1:
l2.append(str(i)+'\n')
f4.writelines(l2)
f4.flush() # 将缓冲区的数据立刻写入文件,避免断电,一般文件关闭后会自动刷新
print(f4.isatty()) # 是否为终端文件
print(f4.closed) # 查看文件是否为关闭状态
print(f4.encoding) # 获取文件的编码模式
print(f4.mode) # 获取文件的打开模式
f4.close()
>>>
False
False
cp936
w+
【声明】:学习笔记基于互联网上各种学习资源的个人整理。
以上是本期内容,下期介绍python中文件系统功能os模块的用法。
我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。