文章目录
🍀引言
🍀文件操作基础
在Python中,文件操作是一项重要的任务。我们首先要了解如何打开、读取和写入文件。
- 打开文件:
使用open()函数可以打开一个文件,并返回一个文件对象。你可以指定文件路径、文件名以及打开模式(读取、写入等)。
file_path = 'example.txt'
file = open(file_path, 'r') # 以只读模式打开文件
- 读取文件内容:
通过文件对象的read()方法可以读取文件的内容。你可以一次性读取整个文件,也可以逐行读取。
content = file.read() # 读取整个文件内容
- 写入文件内容
使用文件对象的write()方法可以将数据写入文件。需要注意的是,写入操作默认会覆盖文件原有内容,如果要追加内容,可以使用追加模式。
output_file = open('output.txt', 'w') # 以写入模式打开文件
output_file.write("Hello, world!")
🍀上下文管理器与文件自动关闭
Python引入了上下文管理器,让文件操作更加便捷。通过with语句打开文件,当代码块执行完毕后,文件会自动关闭,避免了手动关闭文件可能引发的问题。
with open('example.txt', 'r') as file:
content = file.read()
# 文件会在代码块执行完毕后自动关闭
🍀文件的迭代与逐行读取
Python允许你将文件对象当作迭代器来使用,逐行读取文件内容
with open('example.txt', 'r') as file:
for line in file:
print(line)
🍀文件的其他常见操作
除了基本的读写操作,还有其他有用的文件操作方法,比如获取文件大小、判断文件是否存在等。
import os
file_size = os.path.getsize('example.txt') # 获取文件大小
file_exists = os.path.exists('example.txt') # 判断文件是否存在
🍀输入输出基础
在Python中,通过标准输入和标准输出可以进行基本的输入和输出操作。
- 标准输入:
使用input()函数可以从标准输入获取用户输入的内容。
name = input("请输入你的名字:")
print("你好,", name)
- 标准输出:
使用print()函数可以将内容输出到标准输出。
print("Hello, world!")
🍀 文件输入输出
with open('output.txt', 'w') as file:
file.write("Hello, world!")
🍀格式化输出
使用格式化字符串,你可以将变量的值插入到输出文本中。
age = 25
print("我今年{}岁。".format(age))
🍀高级文件操作
Python的标准库和第三方库提供了更多高级的文件操作功能,例如处理CSV、JSON、XML等格式的文件,以及在网络上下载文件等
🍀学生管理系统案例
功能要求:
添加学生姓名和成绩。
显示所有学生的姓名和成绩。
将学生信息保存到文件。
从文件中加载学生信息。
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def __str__(self):
return f"姓名: {self.name}, 成绩: {self.score}"
def add_student(students):
name = input("请输入学生姓名: ")
score = float(input("请输入学生成绩: "))
student = Student(name, score)
students.append(student)
print("学生信息已添加。")
def display_students(students):
print("学生信息:")
for student in students:
print(student)
def save_to_file(students, file_path):
with open(file_path, 'w') as file:
for student in students:
file.write(f"{student.name},{student.score}\n")
print("学生信息已保存。")
def load_from_file(file_path):
students = []
try:
with open(file_path, 'r') as file:
for line in file:
name, score = line.strip().split(',')
students.append(Student(name, float(score)))
except FileNotFoundError:
pass
return students
def main():
students = load_from_file('students.txt')
while True:
print("\n学生成绩管理系统")
print("1. 添加学生信息")
print("2. 显示学生信息")
print("3. 保存学生信息到文件")
print("4. 退出")
choice = input("请选择操作:")
if choice == '1':
add_student(students)
elif choice == '2':
display_students(students)
elif choice == '3':
save_to_file(students, 'students.txt')
elif choice == '4':
print("感谢使用学生成绩管理系统!")
break
else:
print("无效的选择,请重新输入。")
if __name__ == "__main__":
main()
运行结果如下