精华内容
下载资源
问答
  • Python文件处理 open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开。 open() 函数常用形式是接收两个参数:文件名(file)和模式...
    
    
    

    一、open() 方法

    open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数。

    如果该文件无法被打开,会抛出 OSError。

    open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

    完整的语法格式为:

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    

    参数说明:

    1、file: 必需,文件路径(相对或者绝对路径)。

    例如:
    采用相对路径“f = open("…/test.txt",mode=‘w’)”打开上级文件夹的“test.txt”文件。

    采用绝对路径“f = open(“d:/test.txt”,mode=‘w’)”打开D盘根文件夹的“test.txt”文件。

    2、mode: 可选,文件打开模式。

    默认值为‘rt’,表示只读文本模式。

    3、buffering: 可选,设置缓冲。

    缺省或设置为-1时,默认是8192个字节,8192/1024 = 8k。
    设置为 0 时,表示不使用缓冲区,直接读写,仅在二进制模式下有效。
    设置为 1 时,表示在文本模式下使用行缓冲区方式。
    设置为 大于1 时,表示缓冲区的设置大小。

    4、encoding: 一般使用utf8。

    5、errors: 报错级别。

    6、newline: 区分换行符。

    7、closefd: 传入的file参数类型。

    8、opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。

    二、mode 参数

    x 写模式,新建一个文件,如果该文件已存在则会报错。

    U 通用换行模式(Python 3 不支持)。

    三、file 对象

    file 对象使用 open 函数来创建,下表列出了 file 对象常用函数:

    四、文件打开与关闭

    f = open(…)是由操作系统打开文件。

    如果打开的是文本文件,会涉及到字符编码问题。

    如果没有为open指定编码,那么打操作系统会用自己的默认编码去打开文件。

    在windows下是gbk,在linux下是utf-8。


    默认打开模式为 r ,文件不存在则报错,文件存在则文件内指针直接跳到文件开头。

    f=open('a.txt','r',encoding='utf-8') 
    

    下面一个代码会将文件的内容由硬盘全部读入内存,赋值给res。

    res=f.read() 
    

    最后要向操作系统发起关闭文件的请求,回收系统资源。

    f.close()
    


    例如:

    with open('test.txt', mode='rt', encoding='utf-8') as f:
        for line in f:
            print(line,end='')
    

    可用with同时打开多个文件,用逗号分隔开即可

    with open('a.txt','r') as read_f,open('b.txt','w') as write_f:  
        data = read_f.read()
        write_f.write(data)
    

    五、注册及认证用例

    例如,实现用户注册及认证功能:

    # 1.注册模块
    name = input('请输入您的注册名: ').strip()
    pwd = input('请输入您的密码: ').strip()
    with open('database.txt', mode='a', encoding='utf-8') as f:
        info = '%s:%s\n' % (name, pwd)
        f.write(info)
    # 2.登录模块
    inp_name = input('请输入您的账号: ').strip()
    inp_pwd = input('请输入您的密码: ').strip()
    with open(r'database.txt', mode='r', encoding='utf-8') as f:
        for line in f:
            # 把用户输入的名字与密码与读出内容做比对
            u, p = line.strip('\n').split(':')
            if inp_name == u and inp_pwd == p:
                print('恭喜您登录成功!')
                break
        else:
            print('您输入的账号名或者密码错误!')
    
    

    六、w 模式的使用

    w是只写模式:在文件不存在时创建空文档;文件存在时清空文件,文件指针跑到文件开头。

    with open('b.txt',mode='w',encoding='utf-8') as f:
        f.write('123\n')
        f.write('1234\n') 
        f.write('12345\n')
    

    在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面。

    如果重新以w模式打开文件,则会清空文件内容。

    七、控制文件读写的模式

    前提: t、b模式均不能单独使用,必须与r/w/a之一结合使用

    t(默认):文本模式

    1、读写文件都以字符串为单位
    2、 只能针对文本文件。
    3、必须指定encoding参数。
    4、如果我们指定的文件打开模式为r/w/a,其实默认就是rt/wt/at。

    b:二进制模式

    1、读写文件都以二进制为单位
    2、可以针对所有文件。
    3、一定不能指定encoding参数。

    b模式对比t模式:

    1、在操作纯文本文件方面 t 模式帮我们省去了编码与解码的环节,b模式则需要手动编码与解码,所以此时t模式更为方便。

    2、针对非文本文件(如图片、视频、音频等)只能使用b模式。

    八、读操作

    f.read() # 读取所有内容,执行完该操作后,文件指针会移动到文件末尾

    f.readline() # 读取一行内容,光标移动到第二行首部

    f.readlines() # 读取每一行内容,存放于列表

    f.read()与f.readlines()都是将内容一次性读入内容,如果内容过大会导致内存溢出。

    若还想将内容全读入内存,则必须分多次读入,有两种实现方式:

    方式一

    with open('a.txt',mode='rt',encoding='utf-8') as f:
        for line in f:
            print(line) # 同一时刻只读入一行内容到内存中
    

    方式二

    with open('1.mp4',mode='rb') as f:
        while True:
            data=f.read(1024) # 同一时刻只读入1024个Bytes到内存中
            if len(data) == 0:
                break
            print(data)
    

    九、控制文件内指针移动

    文件内指针的移动都是Bytes为单位的,唯一例外的是 t 模式下的read(n),以n个字符为单位。

    with open('a.txt',mode='rt',encoding='utf-8') as f:
         data=f.read(3) # 读取3个字符
    
    with open('a.txt',mode='rb') as f:
         data=f.read(3) # 读取3个Bytes
    

    若想读取文件某一特定位置的数据,则需要用 f.seek 方法控制文件内指针的移动。

    详细用法如下:

     f.seek(指针移动的字节数,模式控制)
    

    十、seek模式控制

    0:默认,该模式代表指针移动的字节数是以文件开头的位置为参照的。

    1:该模式代表指针移动的字节数是以当前位置为参照的。

    2:该模式代表指针移动的字节数是以文件末尾的位置为参照的。

    注意:其中 0 模式可以在 t 或 b 模式使用,而 1 跟 2 模式只能在 b模式下用

    十一、文件的修改

    注意:

    1、硬盘空间是无法修改的,硬盘中数据的更新都是用新内容覆盖旧内容。

    2、内存中的数据是可以修改的。

    文件修改是将硬盘中文件的内容读入内存,然后在内存中修改完毕后再覆盖回硬盘。

    具体的实现方式分为两种:

    方式一:

    将文件内容一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件。

    优点: 在文件修改过程中同一份数据只有一份
    缺点: 会过多地占用内存

    with open('db.txt',mode='rt',encoding='utf-8') as f:
        data=f.read()
    with open('db.txt',mode='wt',encoding='utf-8') as f:
        f.write(data.replace('123'))
    

    方式二:

    以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完后写入临时文件。删掉原文件,将临时文件重命名原文件名。

    优点: 不会占用过多的内存
    缺点: 在文件修改过程中同一份数据存了两份

    import os
    with open('db.txt',mode='rt',encoding='utf-8') as read_f,\
            open('.db.txt.swap',mode='wt',encoding='utf-8') as wrife_f:
        for line in read_f:
            wrife_f.write(line.replace('123'))
    os.remove('db.txt')
    os.rename('.db.txt.swap','db.txt')
    

    结语

    以上就是Python文件处理的基础知识,希望对大家有所帮助。 如果大家有任何疑问请给我留言,我会尽快回复大家。在此也非常感谢大家对CSDN的支持!

    展开全文
  • python 示例 文件模式属性 (File mode Property) mode Property is an inbuilt property of File object (IO object) in Python, it is used to get the mode (w, r, a, etc.) of the file from the file object in ...

    python 示例

    文件模式属性 (File mode Property)

    mode Property is an inbuilt property of File object (IO object) in Python, it is used to get the mode (w, r, a, etc.) of the file from the file object in Python.

    mode属性是Python中File对象(IO对象)的内置属性,用于从Python中的文件对象获取文件的模式( w , r , a等)。

    Syntax:

    句法:

        file_object.mode
    
    

    Parameter(s):

    参数:

    • None

      没有

    Return value:

    返回值:

    The return type of this method is <class 'str'>, it returns the file mode.

    该方法的返回类型为<class'str'> ,它返回文件模式。

    Example:

    例:

    # Python File mode Property with Example
    
    # opening files in various modes
    file1 = open("myfile1.txt", "w")
    file2 = open("myfile3.txt", "a")
    file3 = open("myfile4.txt", "wb")
    
    # printing the file modes
    print("file1 mode is:", file1.mode)
    print("file2 mode is:", file2.mode)
    print("file3 mode is:", file3.mode)
    
    # closing the files
    file1.close()
    file2.close()
    file3.close()
    
    

    Output

    输出量

    file1 mode is: w
    file2 mode is: a
    file3 mode is: wb
    
    
    

    翻译自: https://www.includehelp.com/python/file-mode-property-with-example.aspx

    python 示例

    展开全文
  • 文件模式: 打开文件的模式有: r,只读模式(默认)。 w,只写模式。【不可读;不存在则创建;存在则删除内容;】 a,追加模式。【可读; 不存在则创建;存在则只追加内容;】 "+" 表示可以同时读写某个...

    文件模式:

    打开文件的模式有:

    • r,只读模式(默认)。
    • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

    "+" 表示可以同时读写某个文件

    • r+,可读写文件。【可读;可写;可追加】
    • w+,写读。【创建新文件,填充内容。相当于覆盖】
    • a+,同a

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

    • rU
    • r+U

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    • rb
    • wb
    • ab

    转载于:https://www.cnblogs.com/petrolero/p/8998295.html

    展开全文
  • Python文件读写模式

    2020-07-24 19:23:10
    以下为python文件读写的所有模式(12种): 模式组合 \ b + b+ r r rb r+ rb+ w w wb w+ wb+ a a ab a+ ab+ 每种模式的具体意义如下: 模式 具体意义 r 以只读方式打开文件。文件的指针将会...

    以下为python文件读写的所有模式(12种):

    模式组合 \ b + b+
    r r rb r+ rb+
    w w wb w+ wb+
    a a ab a+ ab+

    每种模式的具体意义如下:

    模式 具体意义
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    本图片引自菜鸟教程

    (本图片引自菜鸟教程https://www.runoob.com/python/python-files-io.html)

    对各种读写模式的总结对比:

    模式 -------------- -------------- ------创建------ ------覆盖------ 指针在开始 指针在结尾
    r
    r+
    w
    w+
    a
    a+

    File对象的属性:

    属性 内容
    file.closed 文件关闭返回True,否则False
    file.name 返回操作文件的名称
    展开全文
  • Python 文件读取模式

    2019-04-23 10:42:16
    Python 文件处理 使用python的内置方法open()可以打开文件 语法:file=open(“文件的地址和名称”,”打开文件模式,r表示只读模式”) 打开文件模式分为: r:只读模式,若未设置模式,则默认为只读模式 rb...
  • Python 文件访问模式

    2018-01-19 09:20:00
    Python 文件访问模式 f = open('xxx文件', '访问模式') r 以只读方式打开文件(read)。文件的指针将会放在文件的开头。默认模式。 w 打开一个文件只用于写入(write)。如果该文件已存在则将其...
  • Python 文件打开模式区别模式类型 模式类型 a r w a+ r+ w+ q
  • python文件读写模式

    千次阅读 2016-03-14 16:07:30
    python文件读写模式: (1)r模式: 该模式打开的文件必须存在,如果不存在,将会出错;并且,该模式打开的文件,只能读,不能向文件中写入。(只读) (2)r+模式: 该模式打开的文件必须存在,如果不存在,...
  • python 文件打开模式

    2019-02-15 17:58:31
    'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError 'w' 覆盖写模式,文件不存在则创建,存在...'b' 二进制文件模式 't' 文本文件模式,默认值 '+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能 ...
  • Python 文件open模式

    2019-02-27 10:24:26
    不同模式打开文件的完全列表: 模式 描述 r 以只读方式打开文件文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 r+...
  • 主要介绍了Python读写文件模式和文件对象方法,结合实例形式详细分析了Python文件操作常用技巧与相关注意事项,需要的朋友可以参考下
  • Python读写文件模式

    2017-03-10 16:13:39
    Python读写文件模式的一个小笔记还有我充满怨气的吐槽!!!
  • 一、文件操作的模式 文件的打开模式分为两大类 一、控制文件读写操作的模式 1 、r:只读(默认的):在文件不存在时则报错,文件存在时文件指针跳到文件开头 f = open("a.txt",mode = "rt",encoding="utf-8") res = f....
  • Python 文件的读写模式

    2020-07-05 14:36:49
    'r+' ---表示 :可读可写:该文件必须存在 ,后写入的文件内容追加在原文件内容前尾,如果原文件不存在则会报错 光标一直在原文件末尾 'w+' ---表示 :写读:该文件不存在创建新的文件并且写入数据 ,存在则覆盖...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,243
精华内容 4,497
关键字:

python文件模式

python 订阅