当前位置:首页>python>python入门之文件操作

python入门之文件操作

  • 2026-09-06 06:19:02
python入门之文件操作

一、文件操作基础

(一)文件操作的重要性与应用场景

在Python编程中,文件操作至关重要。无论是处理配置文件、存储程序运行结果,还是读取数据集进行数据分析等,都离不开对文件的操作。例如,在数据分析项目中,需要从外部文件中读取大量的数据进行处理和分析;在Web开发中,可能需要读取和写入配置文件来设置服务器参数。

(二)文件的概念与打开方式

  • 文件的定义文件是存储在外部存储介质(如硬盘、U盘等)上的数据集合。在Python中,我们可以通过相应的函数和方法来操作这些文件。
  • 打开文件的方式
    • 'r':只读模式,用于读取文件内容。例如:
    • 使用open()函数打开文件,其基本语法为file_object = open(file_name, mode)。
    • 其中file_name是要打开的文件名(可以包含路径),mode是打开文件的模式,常见的模式有:
file = open('example.txt', 'r')
    - `'w'`:写入模式,如果文件存在则覆盖原有内容,如果文件不存在则创建新文件。例如:
file = open('new_file.txt', 'w')
    - `'a'`:追加模式,在文件末尾添加内容,如果文件不存在则创建新文件。例如:
file = open('log.txt', 'a')

二、文件读取

(一)读取整个文件

  • 可以使用read()方法读取整个文件内容。例如,有一个名为test.txt的文件:
with open('test.txt', 'r') as file:    content = file.read()    print(content)
  • 也可以使用readline()方法逐行读取文件,每次读取一行:
with open('test.txt', 'r') as file:    line = file.readline()while line:        print(line)        line = file.readline()
  • 还可以使用readlines()方法将文件内容按行读取到一个列表中:
with open('test.txt', 'r') as file:    lines = file.readlines()for line in lines:        print(line)

(二)文件路径设置

  • 在Python中,文件路径可以是相对路径或绝对路径。
  • 相对路径相对路径是相对于当前工作目录的路径。例如,如果当前工作目录下有一个data文件夹,里面有一个data.txt文件,那么在Python中可以这样读取:
with open('data/data.txt', 'r') as file:    content = file.read()    print(content)
  • 绝对路径绝对路径是从文件系统的根目录开始的完整路径。例如,在Windows系统中,绝对路径可能是C:\Users\username\Documents\file.txt,在Python中使用绝对路径打开文件:
import os# 假设这是一个Windows系统下的绝对路径path = r'C:\Users\username\Documents\file.txt'with open(path, 'r') as file:    content = file.read()    print(content)

(三)逐行读取

  • 除了上面提到的readline()方法,还可以使用for循环直接逐行读取文件,这是一种更简洁的方式:
with open('test.txt', 'r') as file:for line in file:        print(line)

(四)创建包含文件各行内容的列表

  • 如前面提到的readlines()方法可以实现这一功能。以下是一个示例:
with open('test.txt', 'r') as file:    lines_list = file.readlines()    print(lines_list)

(五)使用文件的内容

  • 假设test.txt文件中存储了一些数字,每行一个,我们可以读取这些数字并进行计算。例如:
total = 0with open('test.txt', 'r') as file:for line in file:        number = int(line.strip())        total += number    print(total)

(六)处理大型文件

  • 当处理包含一百万位的大型文件时,直接将整个文件内容读取到内存中可能会导致内存不足。可以采用分块读取的方法。例如,假设我们有一个大型文本文件large_file.txt:
block_size = 1024total_sum = 0with open('large_file.txt', 'r') as file:whileTrue:        block = file.read(block_size)ifnot block:break# 在这里可以对读取的块进行处理,例如统计字符数量等        total_sum += len(block)    print(total_sum)

(七)圆周率值中包含生日吗

  • 假设我们有一个包含圆周率值的大型文件pi.txt,我们的生日是0305(格式为月日),可以这样查找:
with open('pi.txt', 'r') as file:    pi_content = file.read()if'0305'in pi_content:        print("圆周率值中包含你的生日!")else:        print("圆周率值中不包含你的生日。")

三、文件写入

(一)写入空文件

  • 当使用'w'模式打开一个不存在的文件时,Python会创建一个新文件并允许写入内容。例如:
with open('new_text.txt', 'w') as file:    file.write("This is a new file.")

(二)写入多行

  • 可以使用write()方法多次调用或者使用字符串拼接后写入。例如:
with open('multi_lines.txt', 'w') as file:    file.write("Line 1\n")    file.write("Line 2\n")    file.write("Line 3\n")

或者

lines = ["Line A\n", "Line B\n", "Line C\n"]with open('multi_lines_2.txt', 'w') as file:    file.writelines(lines)

(三)附加到文件

  • 使用'a'模式可以在文件末尾添加内容。例如:
with open('log.txt', 'a') as file:    file.write("This is an additional log entry.")

最新文章

随机文章