• Python数学建模-2.6文件操作


    2.6.1文件操作基本知识

    Python文件操作是Python编程中的一个重要部分,它允许我们读取、写入、修改和删除文件。以下是一些Python文件操作的基本知识:

    1.Python文件对象常用方法

    Python文件对象提供了多种方法,用于对文件进行读取、写入、定位和查询等操作。以下是文件对象的一些常用方法:

    读取方法

    1. read([size]):从文件中读取指定数量的数据(如果指定了size)或读取整个文件(如果未指定或size为负数)。
    2. readline([size]):读取文件中的一行。如果指定了size,则最多读取size个字符。
    3. readlines([sizehint]):读取文件中的所有行,并返回一个包含所有行的列表。如果指定了sizehint,则返回的行数可能会少于总行数。
    4. readinto(b):读取指定数量的数据到字节数组b中。返回读取的字节数。

    写入方法

    1. write(s):将字符串s写入文件。返回写入的字符数。
    2. writelines(lines):将一个字符串列表lines写入文件,不需要在列表中添加换行符。

    定位方法

    1. seek(offset[, whence]):移动文件读取/写入的指针到指定位置。offset是相对于某个参考点的偏移量,whence是参考点(默认为0,表示文件开头;1表示当前位置;2表示文件末尾)。
    2. tell():返回当前文件读取/写入的指针位置。

    查询方法

    1. flush():将缓冲区中的任何未写入的数据写入文件,并清空缓冲区。通常用于确保所有待写入的数据都已被写入文件。
    2. closed:返回一个布尔值,表示文件是否已关闭。
    3. name:返回文件的名称。
    4. mode:返回文件打开时使用的模式。

    其他方法

    1. close():关闭文件。这是一个很重要的方法,应该在使用完文件后调用,以确保释放所有资源。然而,当使用with语句时,Python会自动关闭文件。
    2. fileno():返回文件的文件描述符(一个小的非负整数),它用于在底层系统调用中标识文件。
    3. isatty():如果文件是一个交互式终端,则返回True,否则返回False

    上下文管理器

    使用with语句时,Python会自动管理文件的打开和关闭。在with块内,你可以使用文件对象进行读写操作,当退出with块时,Python会确保文件被正确关闭。

    示例:

    1. with open('example.txt', 'r') as file:
    2. content = file.read()
    3. print(content) # 无需显式调用file.close()

    在上面的示例中,当with块结束时,file对象会自动关闭,即使发生了异常也是如此。

    了解这些常用方法可以帮助你更有效地使用Python的文件操作功能。在编写代码时,请确保正确处理异常,并在不再需要文件时关闭它们以避免,资源泄漏。

    2.Python文件常用操作

    2.1打开文件

    在Python中,使用open()函数来打开一个文件。这个函数需要至少一个参数,即文件名。例如:

    file = open('filename.txt', 'r')

    这里的'r'表示文件以只读模式打开。Python中常用的文件打开模式有:

    • 'r':只读模式(默认)。
    • 'w':写入模式,如果文件存在则将其覆盖。如果文件不存在,创建新文件。
    • 'a':追加模式,如果文件存在,文件指针将会放在文件的结尾。也就是说,新的内容将被写入到已有内容之后。如果文件不存在,创建新文件。
    • 'r+':读写模式,文件指针将会放在文件的开头。
    • 'w+':写读模式,如果文件存在则将其覆盖。如果文件不存在,创建新文件。
    • 'a+':写读模式,如果文件存在,文件指针将会放在文件的结尾。也就是说,新的内容将被写入到已有内容之后。如果文件不存在,创建新文件。

    2.2读取文件

    一旦文件被打开,你就可以使用read()方法读取文件的内容。例如:

    1. content = file.read()
    2. print(content)

     read()方法会读取整个文件的内容。如果想按行读取文件,可以使用readline()readlines()方法。

    2.3写入文件

    如果文件是以写入或追加模式打开的,可以使用write()方法将内容写入文件。例如:

    1. file = open('filename.txt', 'w')
    2. file.write('Hello, world!')
    3. file.close()

     请注意,在使用完文件后,应该使用close()方法关闭文件。这是一个好习惯,可以防止数据丢失和资源泄漏。

    2.4使用with语句

    为了更优雅地处理文件,我们可以使用Python的with语句。这个语句可以确保文件在操作完成后被正确关闭,即使在处理文件时发生了异常也是如此。例如:

    1. with open('filename.txt', 'r') as file:
    2. content = file.read()
    3. print(content)

    在这个例子中,当with语句块执行完毕后,file对象会自动关闭,无需显式调用close()方法。

    以上就是Python文件操作的基本知识。实际上,Python的文件操作功能非常强大,还支持更多的高级功能,如文件指针的移动、文件的随机访问等。我们你可以查阅Python的官方文档或相关教程来了解更多信息。

    3.内置函数open用法

    在Python中,open是一个内置函数,用于打开文件,并返回一个文件对象。这个对象提供了许多方法用于对文件进行读取、写入或执行其他操作。

    open函数的基本语法如下:

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    • file:必需参数,表示要打开的文件名(可以包含路径)。
    • mode:可选参数,表示文件打开模式。默认为'r',表示只读模式。
    • buffering:可选参数,设置缓冲策略。
    • encoding:可选参数,指定文件的字符编码。
    • errors:可选参数,指定编码或解码错误时的处理方式。
    • newline:可选参数,控制换行符的行为。
    • closefd:可选参数,如果为True,则在文件关闭后也会关闭底层的文件描述符(仅用于底层文件接口)。
    • opener:可选参数,一个用于打开文件的可调用对象,通常不需要使用。

    2.6.2文本文件操作

    在上文中,已经将Python文件操作的知识进行介绍,关于文本文件操作,大致与上述介绍一致,为了加深大家的印象,在此专就这一内容再进行学习。

    读取文本文件

    要读取文本文件的内容,可以使用open()函数以只读模式('r')打开文件,并使用文件对象的read()readline()readlines()方法读取内容。

    1. # 打开文件并读取全部内容
    2. with open('file.txt', 'r') as file:
    3. content = file.read()
    4. print(content)
    5. # 打开文件并逐行读取
    6. with open('file.txt', 'r') as file:
    7. for line in file:
    8. print(line, end='') # end='' 避免每行末尾的换行符被打印两次

    写入文本文件

    要写入文本文件,可以使用open()函数以写入模式('w')或追加模式('a')打开文件,并使用文件对象的write()方法写入内容。

    1. # 写入文本文件(覆盖原有内容)
    2. with open('file.txt', 'w') as file:
    3. file.write('Hello, world!\n')
    4. file.write('This is a new line.')
    5. # 追加内容到文本文件
    6. with open('file.txt', 'a') as file:
    7. file.write('\nAppended text.')

    修改文本文件

    修改文本文件通常意味着读取文件内容,进行必要的更改,然后将更改后的内容写回到文件。由于文本文件是顺序存储的,你不能直接修改文件中的某一部分而不重写整个文件。

    1. # 修改文本文件内容
    2. with open('file.txt', 'r') as file:
    3. lines = file.readlines()
    4. # 修改特定行
    5. lines[1] = 'This line has been modified.\n'
    6. # 将修改后的内容写回文件(覆盖原有内容)
    7. with open('file.txt', 'w') as file:
    8. file.writelines(lines)

    删除文本文件内容

    要删除文本文件的内容,你可以以写入模式打开文件但不写入任何内容,或者简单地重新创建空文件。

    1. # 方法一:打开文件但不写入任何内容(覆盖原有内容)
    2. with open('file.txt', 'w') as file:
    3. pass
    4. # 方法二:使用os模块删除文件并重新创建
    5. import os
    6. os.remove('file.txt') # 删除文件
    7. with open('file.txt', 'w') as file: # 重新创建空文件
    8. pass

    使用上下文管理器

    使用with语句可以确保文件在使用完毕后被正确关闭,这是一种推荐的做法,可以避免资源泄漏和异常处理的问题。

    异常处理

    在文件操作中,可能会出现各种异常,如文件不存在、没有读取权限等。为了处理这些异常,你可以使用try...except块。

    1. try:
    2. with open('file.txt', 'r') as file:
    3. content = file.read()
    4. except FileNotFoundError:
    5. print("文件不存在")
    6. except PermissionError:
    7. print("没有读取权限")
    8. except Exception as e:
    9. print(f"发生错误: {e}")

    了解这些基本的文本文件操作后,我们还可以根据具体需求进行更复杂的文件处理,如搜索特定内容、替换文本、按特定格式写入等。在处理文件时,请确保有足够的权限,并始终注意异常处理和数据安全。

  • 相关阅读:
    u-view组件库开发中的u-avatar-group头像组组件的层级反方向层级覆盖的实现
    NPM安装后报错:ERROR: npm v10.2.1 is known not to run on Node.js v10.24.1.
    四天拿捏SpringSecurity?这份阿里架构师编写的理论与实战结合的学习笔记到底有多强
    2739. 总行驶距离
    二维码智慧门牌管理系统升级解决方案:采集项目的建立与运用
    【Typescript基础】函数详解
    Git分布式版本控制工具(一)
    Python绘图系统16:动态更新tkinter组件
    1044 火星数字 (测试点2.4说明)
    周大福践行「百周年承诺」,真诚服务推动绿色环保
  • 原文地址:https://blog.csdn.net/2202_75971130/article/details/136799718