Py学习  »  Python

初识Python之文件操作篇(上)

王小王-123 • 3 年前 • 320 次点击  

前言

在计算机信息系统中,根据信息的储存时间长短,可以分为临时性信息和永久性信。一般储存在CPU和磁盘中,本期我们将介绍关于文件操作处理的一些基本知识,有利于我们平时开发保存数据等。

使用open()函数打开文件

open(filename,mode="r",buffering=-1,encoding=None,errors=None,newline=None,closed=True,opener=None)
  • 1

filename:表示要打开的文件名
mode:可选参数,文件打开模式,一般不需要设置,因为默认是“r”可读
buffering:可选参数,缓冲区大小
encoding:文件编码类型
errors:编码错误处理方法
newline:控制通用换行模式的行为
closefd:控制在关闭文件时是否彻底关闭文件
在这里插入图片描述

 fo=open("王小王.txt","wb")#用wb格式打开指定文件,如果没有就会自动创建
print("文件名:",fo.name)
print("关闭文件!",fo.closed)
print("访问模式:",fo.mode)

  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
注意:我们在进行文件操作的时候,一定要利用优化代码进行,不然没有关闭文件会使得CPU蹭蹭往上飙升,这个时候你的电脑就无法承受的。

'''flush()'''
'''flush的功能是自动刷新缓冲区,一般情况下,我们在关闭文件的时候就会
自动刷新缓冲区,但是有的时候我们还是要通过该函数来在,关闭之前刷新一下
格式:文件名.flush(),一般在关闭文件(文件名.close())之前就要刷新一下,有的时候根据自己需要
'''

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
'''fileno()'''
'''该函数的功能是返回一个整型的文件描述符'''
'''isatty()'''
'''该函数是来检测文件是否连接到一个终端设备,如果是则返回TRUE'''
  • 1
  • 2
  • 3
  • 4
'''next'''
fo=open("王小王.txt","r")
print("文件名:",fo.name)
for i in range(5):
    line=next(fo)
    print("第%d行-%s"%(i,line))
fo.flush()
fo.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述 为什么会出现乱码了?这个就是因为我们在里面没有加入编码转换encoding,下面我们在属性里面加入encoding=“utf-8”试试
在这里插入图片描述

'''read(),readline()'''
'''read()可以读取全部内容,也可以读取一行一行的,但是我们在实际操作的过程中
更倾向于readline()
'''
# 利用r+模式打开,使得文件指针会自动放在文件头部
fo=open("王小王.txt","r+")
line=fo.read(3)#读取文件前面3字节的内容
print("读取的内容:",line)
fo.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

fo=open("王小王.txt","r+",encoding="utf-8")
for i in range(5):
    line=fo.readline()
    print(line)
fo.close()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
注:还有一个函数readlines(),这个函数需要的可以去专门的CSDN社区看看

'''seek()'''
'''主要是移动文件指针的位置
格式:文件名.seek(offest[,whence])
offest:表示偏移的字节数,whence:表示可选参数,0从文件开头算起,1表示从当前位置算起,2表示从文件末尾算起
'''

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
'''tell()'''
'''tell()没有参数,功能是获取文件的当前位置,即文件指针当前位置'''
  • 1
  • 2
'''truncate()'''
'''
truncate() 方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 
如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。
'''

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
'''writelines()'''
'''该函数的功能是向文件写入多行字符串'''
fo = open("王小王.txt","w",encoding="utf-8")
fo.writelines("hello,python!")
# 这里也可以通过写入列表,或者其他类型
for i in range(5):
    line=fo.readline()
    print(line)
fo.close()
'''*****************'''
fo =open(r"王小王.txt",encoding="utf-8")
print(fo.readline())
fo.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
总结

有句话说的好,“学的东西越多才发现要学的东西太多了”,如果你可以这样感觉,恭喜你终于领悟到了“学无止境”的精髓了。学懂了才是真的懂了,所以我们还是要适量的学习,劳逸结合。
今天的文章还有一些知识点,我们下期文章再会!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/72117
 
320 次点击