【Python】文件操作(单文件操作)

简介: 【1月更文挑战第26天】【Python】文件操作(单文件操作)

 image.gif编辑

目录

一、文件操作概述:

二、文件基本操作:

文件操作步骤:

1.打开文件:

2.对文件进行读写操作:

3.关闭文件的输入输出流:

demo:

文件访问模式:

基础访问模式特点:

读取操作:

1.read()

2.readline()

3.readlines()

文件对象方法:

seek()

三、文件备份:

实现步骤:

代码实现:

1.接收用户输入的目标文件名:

2.规划备份文件名:

3.备份文件写入数据:

4.代码优化:


一、文件操作概述:

       文件操作:就是将数据从内存中进行持久化,读取本地磁盘或者远程服务器数据加载到内存中,可以使得程序在下一次执行时,可以直接使用上一次执行结束时的数据,而不必重新获取数据!


二、文件基本操作:

文件操作步骤:

1.打开文件:

使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:

open(name,mode)

image.gif

    • name:指定打开的目标文件名称的字符串(可以包含文件所在的具体路径)
    • mode:设置打开文件的模式(只读,写入,追加等)

    2.对文件进行读写操作:

    # 指定文件对象,通过文件对象,对文件进行读写操作
    f.write("hello krian !")

    image.gif

    3.关闭文件的输入输出流:

    # 关闭文件流
    f.close()

    image.gif

    demo:

    f = open('test.text','w')
    #--------------------------------------------------
    # 1.打开一个文件(新创建一个文件) open()
    f = open('test.text', 'w') # f:作为open函数的文件对象
    # 2.指定文件对象,对文件进行读写操作
    f.write("hello krian !")
    # 3.关闭文件流
    f.close()

    image.gif

    注意:此时fopen函数的文件对象!

    文件访问模式:

    模式

    描述

    r

    以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

    rb

    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

    r+

    打开一个文件用于读写。文件指针将会放在文件的开头。

    rb+

    以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

    w

    打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    wb

    以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    w+

    打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    wb+

    以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    a

    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    ab

    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    a+

    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

    ab+

    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    基础访问模式特点:

      • 访问模式对文件的影响
      • 访问模式对write()的影响
        • 访问模式是否省略

        r访问模式:

          • 如果文件对象不存在,则会报错
          • 不支持写入操作,表示只读

          w访问模式:

            • 如果文件对象不存在,不会报错,程序自动创建对应的文件对象
            • 执行写入操作,如果文件对象已经存在,默认覆盖该文件对象

            a访问模式:

              • 如果文件对象不存在,不会报错,程序自动创建对应的文件对象
              • 执行追加操作,如果文件对象已经存在,默认在文件末尾追加写入的内容

              访问模式的参数是否可以省略:

                • 针对已经存在的文件对象进行操作时,访问模式可以省略,默认时r访问模式
                • 针对不存在的文件对象进行操作时,访问模式不可省略

                读取操作:

                1.read()

                文件对象.read(num)

                image.gif

                       num:表示要从文件中读取的数据长度(单位字节),如果没有传入num那么就表示读取文件中所有的数据。

                注意:每一行结尾处的"\n"的换行符对字节数的占用!!!

                2.readline()

                readline()一次性读取一行内容:

                f = open('test.txt')
                content = f.readline()
                print(f'第一行:{content}')
                content = f.readline()
                print(f'第二行:{content}')
                # 关闭文件
                f.close()

                image.gif

                3.readlines()

                       readlines()函数可以按照行的方式把整个文件中内容进行一次性读取,并返回的是一个列表,其中每一行的数据作为一个元素。

                test.text文件内容:

                hello krian !
                hello world !
                hello lunaticer!
                hello 明天!

                image.gif

                # 1.打开一个文件(新创建一个文件) open()
                f = open('test.text', 'r')  # f:作为open函数的文件对象
                # 2.指定文件对象,对文件进行读取操作
                test_text = f.readlines()
                print(test_text)  # ['hello krian !\n', 'hello world !\n', 'hello lunaticer!\n', 'hello 明天!']
                # 3.关闭文件流
                f.close()

                image.gif

                文件对象方法:

                seek()

                作用:用来移动文件指针。

                文件对象.seek(偏移量,起始位置)

                image.gif

                  • 0:文件开头
                  • 1:当前位置
                    • 2:文件结尾

                    三、文件备份:

                      1. 需求分析
                      2. 根据需求分析步骤
                        1. 根据实际场景体调优

                        实现步骤:

                          1. 接收用户输入的文件名
                          2. 规划备份文件名
                            1. 备份文件写入数据(数据与原文件一致)

                            代码实现:

                            1.接收用户输入的目标文件名:

                            old_name = input('请输入您要备份的文件名:')

                            image.gif

                            2.规划备份文件名:

                              • rfind()函数:从字符串右侧开始查找,返回下标索引值
                              • lfind()函数:从字符串左侧开始查找,返回下标索引值

                              # 提取文件后缀点的下标


                              index = old_name.rfind('.')

                              image.gif

                                • 字符串变量名[起始索引:终止索引]:字符串切片,返回子串
                                old_name[:index]

                                image.gif

                                # 组织新文件名 旧文件名 + [备份] + 后缀
                                new_name = old_name[:index] + '[备份]' + old_name[index:]
                                # 打印新文件名(带后缀)
                                # print(new_name)

                                image.gif

                                3.备份文件写入数据:

                                # 打开文件
                                old_f = open(old_name, 'rb')
                                new_f = open(new_name, 'wb')
                                # 将源文件数据写入备份文件
                                while True:
                                    con = old_f.read(1024)
                                    if len(con) == 0:
                                        break
                                    new_f.write(con)
                                # 关闭文件
                                old_f.close()
                                new_f.close()

                                image.gif

                                4.代码优化:

                                添加判断条件,限制后缀:

                                old_name = input('请输入您要备份的文件名:')
                                index = old_name.rfind('.')
                                if index > 0:
                                    postfix = old_name[index:]
                                new_name = old_name[:index] + '[备份]' + postfix
                                old_f = open(old_name, 'rb')
                                new_f = open(new_name, 'wb')
                                while True:
                                    con = old_f.read(1024)
                                    if len(con) == 0:
                                        break
                                    new_f.write(con)
                                old_f.close()
                                new_f.close()

                                image.gif



                                相关文章
                                |
                                8天前
                                |
                                Python
                                Python文件操作学习应用案例详解
                                Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
                                14 1
                                |
                                27天前
                                |
                                Unix Linux 测试技术
                                Python超详细基础文件操作(详解版)(下)
                                Python超详细基础文件操作(详解版)
                                |
                                27天前
                                |
                                存储 JSON 数据库
                                Python超详细基础文件操作(详解版)(上)
                                Python超详细基础文件操作(详解版)
                                |
                                1月前
                                |
                                Python
                                Python文件操作功能
                                Python文件操作功能
                                24 1
                                |
                                3月前
                                |
                                Python
                                掌握Python文件操作的绝招:打造数据之径,揭开文件操作的神秘面纱-2
                                掌握Python文件操作的绝招:打造数据之径,揭开文件操作的神秘面纱-2
                                |
                                3月前
                                |
                                Java Python
                                在Python中,进行文件操作
                                在Python中,进行文件操作
                                16 2
                                |
                                3月前
                                |
                                Python
                                python里的文件操作
                                python里的文件操作
                                55 1
                                |
                                25天前
                                |
                                存储 安全 API
                                【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
                                【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
                                72 0
                                |
                                1月前
                                |
                                存储 Java 程序员
                                【python】—— 文件操作
                                【python】—— 文件操作
                                |
                                1月前
                                |
                                缓存 数据安全/隐私保护 Python
                                Python快速入门:类、文件操作、正则表达式
                                Python快速入门:类、文件操作、正则表达式