• python操作文件


    文件操作

    读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。


    参数1:文件名,可以是文件的绝对路径
    参数2:option r 读 w 写 b 二进制 a 追加

    读文件

    要读取一个文件的内容,使用python内置的open()函数,传入文件名和标示符,在读文件的时候,文件一定是要存在的,否则会报IOError。

    f = open("1.txt","r")  # 标识符"r"表示读
    f.read()               # read()方法可以一次读取文件的全部内容到内存中
    f.close()              # 文件使用完毕必须关闭
    
    为了避免在读文件的时候产生IOError,我们使用try......finally
    try:
    f = open("1.txt", "r")
    print(f.read())
    finally:
    if f:
    f.close()

    但是每次都要打开文件、读取文件、关闭文件,操作很麻烦,我们可以使用with语句,它会自动帮我们关闭文件。

    with open("1.txt","r") as f:
        print(f.read())           # read(size)  每次最多读取size个内容
        print(f.readline())       # readline()  每次读取一行内容
        print(f.readlines())      # readlines() 一次读取所有内容,并返回一个list,其中每个元素就是一行内容

    二进制文件读取

    之前都是读取文本文件,并且都是utf-8编码格式,接下来我们要读取二进制文件,如图片、视频等,用"rb"模式打开文件即可。

    f = open("1.jpg","rb")
    f.read()
    # b'xffxd8xffxe1x00x18Exifx00x00...'   # 返回一个十六进制的字符串

    读取非utf-8编码的文本文件,我们需要给open()函数传入一个encoding参数。如果文本中有一些非法编码的字符,会报UnicoDecodeError,可以再传入一个errors参数。输入中文,python3要在后面加上encoding="utf-8" 指定编码类型。

    ENCODING = "gbk"  # 我们可以全局声明一下字符编码,下面可以直接使用这个变量
    f = open("gbk.txt","r",encoding=ENCODING,errors="ignore")
    f.read()

    写文件

    和读文件差不多,只是在open()函数中传入的是"w"或者"wb"表示写文本文件或者写二进制文件。需要写入什么编码格式的内容,也可以通过传入encoding。一定要记得关闭文件。

    f = open("1.txt","w",encoding="utf-8")
    f.write("Hello,world")
    f.close()

    同样,我们也可以使用with语句来写文件。

    with open("1.txt","w",encoding="utf-8") as f:
        f.write("Hello,world")

    追加内容到文件

    我们可以使用"a"来完成。

    f = open("1.txt","a",encoding="utf-8")
    f.write("Hello,world")
    f.close()

    同样也可以改成with语句。

    with open("1.txt","a",encoding="utf-8") as f:
    f.write("Hello,world")

    文件对象f常用的操作方法

    fr.read()          把文件的所有内容都读取出来,返回字符串
    fr.write(data)     把字符串data写入到文件中,只接收字符串参数
    fr.readline()      每次读取文件一行的数据,返回每行数据
    fr.readlines()     读取文件内容,返回一个list,每一个元素是一行字符串
    fr.name            文件名字
    fr.fileno()        文件描述符
    fr.close()         关闭文件
    fr.encoding()      文件编码
    fr.closed          返回bool值,查看文件是否已经关闭
    fr.seek()          控制光标位置,文件需要使用b方式打开,偏移量,正数向后偏移,负数向前偏移
                       参数(offset,whence)offset偏移量(数字)   whence 0:开始 1:当前位置 2:最后
    fr.tell()          返回文件光标位置
    fr.truncate(size)  只有写文件才可以用,清空文件,size表示清空到什么位置

    函数的定义

    以关键字def开头,紧接着是函数名,相关参数,可以是一个或者多个,然后冒号:回车缩进,紧接着是函数处理过程,形如:

    def func(args...):
        doSomething

    函数的参数

    def add(x, y):
        return x + y
    add(2,3)
    
    # 结果是5

    参数可以设定默认值,如:

    def add( a, b=10 ): #注意:默认值参数只会运算一次
        return a+b

    冗余参数

    def func(*args): #这种定义传递的参数是一个元组
            print(args,type(args))
    
    func(10,20)
    #结果:
    #(10, 20) <class 'tuple'>
    def func(**kw):#使用**定义参数传递的是一个字典
            print(kw, type(kw) )
    
    func(a=10,b=20)#这种函数在使用时必须指定参数值,使用key=value这种形式
    #结果:{'b': 20, 'a': 10} <class 'dict'>
  • 相关阅读:
    web中间件常见漏洞
    心脏滴血与利用
    mimikatz提取windows密码
    Linux文本编辑器
    Linux打包(归档 )压缩命令
    linux文件和目录命令
    SSL原理
    windows server 2008 安装步骤
    渗透测试术语
    centos 7 修改yum配置
  • 原文地址:https://www.cnblogs.com/yangjian319/p/8823813.html
Copyright © 2020-2023  润新知