Python基础知识详解 从入门到精通(六)文件操作

140 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

打开文件

文件对象名 = open('路径+文件名','打开模式') 若无路径则默认为当前文件夹 如 file = open(‘E://python333.txt’,‘r’) 打开记得关闭

打开模式 r 以只读方式打开(默认) w 以写入方式打开,会覆盖已存在的文件 x 如果文件已存在,使用此模式打开将异常 a 以写入模式打开,如果文件存在则在末尾追加写入 b 以二进制模式打开 t 以文本模式打开(默认) 、+ 可读写模式(可添加到其他模式中使用) U 通用换行符支持

读写模式数据读写基本单位操作权限注意事项
rb字节读取信息,如果文件不存在报错
wb字节写入信息覆盖原始信息,如果文件不存在新建
ab字节追加写写入信息到原信息末尾,如果文件不存在新建
rb+字节读、写读取信息,如果文件不存在报错
wb+字节读、写写入信息覆盖原始信息,如果文件不存在新建
ab+字节读、追加写写入信息到原信息末尾,如果文件不存在新建
r字符读取信息,如果文件不存在报错
w字符写入信息覆盖原始信息,如果文件不存在新建
a字符追加写写入信息到原信息末尾,如果文件不存在新建
r+字符读、写读取信息,如果文件不存在报错
w+字符读、写写入信息覆盖原始信息,如果文件不存在新建
a+字符读、追加写写入信息到原信息末尾,如果文件不存在新建

文件对象方法

==文件指针:相当于书签,相当于光标==

  1. file.close() 关闭文件

  2. file.fileno() 返回文件的描述符(file descriptor,FD,整数值)

  3. file.flush() 刷新文件的内部缓冲区,将在缓冲区的数据写入文件

  4. file.isatty() 判断file是否是一个类设tty备,是返回true

  5. file.next() 返回文件的下一行,或在没有其它行时引发StopIteration异常

  6. file.read(size=-1) 从文件读取size个字节,当未给定size或给定负值时读取剩余的所有字节,然后作为字符串返回

  7. file.readline(size=-1) 从文件中读取并返回一行(包括行结束符),或返回最大size个字节

  8. file.readlines(sizhint=0) 读取文件的所有行并作为一个列表返回(包含所有的行结束符);如果给定sizhint且大于0,那么将返回总和大约为sizhint字节的行

  9. file.seek(off, whence=0) 在文件中转移文件指针,从whence(0代表文件起始,1代表当前位置,2代表文件末尾)偏移off字节

  10. file.tell() 返回当前在文件中的位置

  11. file.truncate(size=file.tell()) 截取文件到最大size字节,默认为当前文件位置

  12. file.write(str) 想文件写入字符串

  13. file.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象

文件对象名.closed 若文件已经关闭返回true 否则返回false 文件对象名.mode 返回文件打开模式 文件对象名.name 返回文件名

使用pickle模块

==需要导入== Import pickle

Pickle.dump(需要写入的对象,文件对象名) 将列表等类型以二进制写入文件

使用

import pickle
List2 = [2,3,4,9]
Pi_file = open(‘my_file’,’wb’)             #打开文件
pickle.dump(list,pi_file)                  #写入
Pi_file.close()                            #关闭文件

Pickle.load(文件对象名) 将文件中的二进制读取生成相应类型 使用如

import pickle
Pi_file = open(‘my_file’,’rb’)  #打开文件
List2 = pickle.load(pi_file)    #读取
Pi_file.close()                 #关闭文件

==with语句== with open(路径文件名,模式) as 文件对象

如 with open(‘E://python333.txt’,‘r’)as f with 会自动关闭文件,无需手动关闭

相关操作

如f为一个文件名 list(f)将文件内容转化为列表,一行为一个元素

for I in f : print(i) 按行迭代输出文件内容

最后

持续更新arduino 树莓派 python Linux c语言等等 接到有帮助的话 求点赞👍 求关注❤️ 求分享👥 有问题可以评论 点关注,不迷路 如果有任何错误,如何建议,请批评指教,不胜感激 !