python基础文件操作和集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础文件操作和集合相关的知识,希望对你有一定的参考价值。

一.文件操作

对文件的操作分三步:

        1、打开文件获取文件的句柄,句柄就理解为这个文件

        2、通过文件句柄操作文件

        3、关闭文件。

1.文件基本操作:

  • f = open(‘file.txt‘,‘r‘) #以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
  • 在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open        
  • frist_line = f.readline()#获取文件的第一行内容,返回的是一个list
  • print(frist_line)#打印第一行
  • res = f.read()#获取除了第一行剩下的所有文件内容,文件句柄发生了变化
  • print(res)
  • f.close()#关闭文件

2.文件打开模式:

    r:只读,不加模式默认为r
    w:只写,[不可读,不存在则创建,存在则删除内容]
    a:追加,[不可读,不存在则创建,存在则只追加内容]

"+" 表示可以同时读写某个文件
    r+ :读写--可读、可写、可追加,如果打开的文件不存在的话,会报错
    w+ :写读--先创建文件,再写(在原文件上的修改都是覆盖操作)
    a+ :追加读--默认打开句柄在末尾,读取需先seek(0)指定位置,一写句柄就到末尾了
    #r和w,seek指定句柄可以覆盖修改,a+指定句柄也是追加

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
    rU
    r+U
    # windows上换行符为 \r\n

"b"表示处理二进制文件
    rb:二进制文件读
    wb:二进制文件写
    ab:追加二进制
# 文件存在硬盘上都是二进制,前边说encoding=‘utf-8‘是指把二进制转换成utf-8编码打开,
# 而“b”是指,不用转换编码,我直接读取二进制

3.文件操作:

f = open("1.txt", ‘r‘, encoding="utf-8")
# encoding="utf-8",utf-8编码打开文件,windows下默认gbk打开
f.readline()            # 读一行,字符串
f.readable()            # 判断文件是否可读
f.writable() # 判断文件是否可写
f.encoding() # 打印文件的编码
f.read() # 读取文件句柄到结束所有内容,大文件时不要用,因为会把文件内容都读到内存中
f.readlines() # 读取文件所有内容,返回一个list,元素是每行的数据,大文件时不要用 f.write("天安门") # 写入内容,r和w模式,为句柄处覆盖写入,a模式写到最后
f.writelines([‘zhangsan‘],[‘李四‘]) #将一个列表写入文件中 f.flush() # 强制刷新(默认缓冲区满了存入磁盘) f.close() # 文件关闭 f.closed() # 判断文件是否关闭 f.read(5) # 读取5个字符 f.tell() # 查看文件句柄位置。按照字符计数 f.seek(0) # 移动文件句柄到第0个字符位置 f.encoding # 文件编码 f.truncate() # 什么不写清空文件 f.truncate(10) # r模式截断出前10个字符,其他模式还是清空

大文件时,读取文件高效的操作方法:
用上面的read()和readlines()方法操作文件的话,会先把文件所有内容读到内存中,这样的话,内存数据一多,非常卡,高效的操作,就是读一行操作一行,读过的内容就从内存中释放了

f = open(‘file.txt‘)
for line in f: # f 变成了迭代器
  print(line) # 判断行的话,需自己加个计数器




















以上是关于python基础文件操作和集合的主要内容,如果未能解决你的问题,请参考以下文章

Python学习基础篇—文件操作和集合

重修课程day6(python基础4之集合和文件操作)

Python学习之旅 —— 基础篇set集合函数文件操作

python基础(集合文件操作)

Python基础:集合与文件操作

python基础(集合,文件操作)