【python学习】python的文件对象

(36) 2024-09-23 07:01:01

中国史之【涂山之会】:
禹在确立王权以及建都阳翟(zhai)(今河南禹县)后,召集夏和夷的部落首领于涂山(今安徽蚌(beng)埠(bu)禹会)会盟。此番会盟是夏朝正式建立的标志,确立了夏朝的统治秩序。
-来源:全历史APP

今天讲python的文件对象。有需要的也可以直接去我的github查看全部笔记:

https://github.com/JackKoLing/python_notes_with_ten_days
【python学习】python的文件对象 (https://mushiming.com/)  第1张
俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。对于环境的配置,可以参考以下两篇:

  • 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模块的用法。

我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。

【python学习】python的文件对象 (https://mushiming.com/)  第2张
THE END

发表回复