Python文件操作

在 Python 中文件操作是一项基础且重要的功能,它主要包括打开、读写、关闭等操作。

1. 打开文件

使用 open() 函数来打开文件,其基本语法如下:

 f = open(file_path, mode, encoding=None)
  • f:是 open 函数的文件对象,拥有属性和方法。

  • file_path:文件的路径,可以是相对路径或绝对路径。

  • mode:打开文件的模式,常见的模式有:

    • r:以只读模式打开文件,文件指针会放在文件的开头,这是默认模式。

    • w:以写入模式打开文件,如果文件已存在则会覆盖原有内容(原有内容会被删除),如果文件不存在则会创建新文件。

    • a:以追加模式打开文件,文件指针会放在文件末尾,新的内容会被写到已有内容之后,如果文件不存在则会创建新文件。

    • x:以独占创建模式打开文件,若文件已存在则会抛出 FileExistsError 异常。

    • b:以二进制模式打开文件。

    • t:以文本模式打开文件。

    • +:以读写模式打开文件。

  • encoding:指定文件的编码方式,常见的有 'utf-8''gbk' 等。注意:encoding 的顺序不是第三位,所以不能用位置参数,要使用关键字参数直接指定。

2. 读取文件

2.1 读取整个文件内容

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

 try:
     f = open('example.txt', 'r', encoding='UTF-8')
     content = f.read()
     print(content)
 finally:
     f.close()

在上述代码中,try...finally 语句确保了文件在使用完后会被关闭。不过,更推荐使用 with 语句,它能自动处理文件的关闭操作。

 with open('example.txt', 'r', encoding='UTF-8') as f:
     content = f.read()
     print(content)
2.2 逐行读取文件内容

可以使用 readline() 方法逐行读取文件内容。

 with open('example.txt', 'r', encoding='UTF-8') as f:
     line = f.readline()
     while line:
         print(line.strip())
         line = f.readline()

也可以使用 for 循环来逐行读取文件内容,这种方式更加简洁。

 with open('example.txt', 'r', encoding='UTF-8') as f:
     for line in f:
         print(line.strip())
2.3 读取多行内容

使用 readlines() 方法可以读取文件的所有行,并将其存储在一个列表中,其中每一行的数据为一个元素。

 with open('example.txt', 'r', encoding='UTF-8') as f:
     lines = f.readlines()
     for line in lines:
         print(line.strip())

其中 strip() 是 Python 字符串对象的一个内置方法,用于移除字符串开头和结尾的指定字符(默认是空白字符)。这里的指定字符是换行符,用于清除每行结尾处的换行符。它不会修改原始字符串,而是返回一个新的字符串。

3. 写入文件

3.1 写入内容覆盖原有文件

使用 write() 方法可以向文件中写入内容,若以 'w' 模式打开文件,会覆盖原有内容:

 with open('example.txt', 'w', encoding='UTF-8') as f:
     file.write('Hello, World!\n')
     file.write('This is a test.\n')
3.2 追加内容到文件末尾

若以 'a' 模式打开文件,会将内容追加到文件末尾:

 with open('example.txt', 'a', encoding='UTF-8') as f:
     file.write('This is an appended line.\n')

4. 关闭文件

在完成文件操作后,需要关闭文件以释放系统资源。可以使用 close() 方法手动关闭文件,不过更推荐使用 with 语句,它会在代码块结束时自动关闭文件。

5. 文件指针操作

可以使用 seek() 方法来移动文件指针的位置,其基本语法如下:

 file.seek(offset, whence)
  • offset:表示要移动的字节数。

  • whence:指定从哪个位置开始移动,有三个可选值:

    • 0:从文件开头开始移动,这是默认值。

    • 1:从当前位置开始移动。

    • 2:从文件末尾开始移动。

例如,将文件指针移动到文件开头:

 with open('example.txt', 'r', encoding='utf-8') as file:
     file.seek(0)  # 将文件指针移动到文件开头
     content = file.read()
     print(content)

6. 检查文件是否存在

在进行文件操作之前,有时需要检查文件是否存在,可以使用 os.path.exists() 函数:

 import os
 ​
 if os.path.exists('example.txt'):
     with open('example.txt', 'r', encoding='utf-8') as file:
         content = file.read()
         print(content)
 else:
     print('文件不存在')

你可能感兴趣的:(Python,python)