# 1. 打开文件
f = open('a.txt', 'r', encoding='utf-8')
# 2. 读写文件 文件对象.read(n) n 一次读取多少字节的内容,默认不写,读取全部内容
buf = f.read(3)
print(buf) # 123
print('-'*30)
buf = f.read(3) #
print(buf)
# 3. 关闭文件
f.close()
f = open('a.txt', 'r', encoding='utf-8')
# f.readline() # 一次读取一行的内容, 返回值是读取到的内容(str)
# buf = f.readline()
# f.readlines() # 按行读取,一次读取所有行,返回值是列表, 列表中的每一项是一个字符串,即一行的内容
buf = f.readlines()
print(buf)
buf = [i.strip() for i in buf]
print(buf)
f.close()
f = open('a.txt', 'r', encoding='utf-8')
while True:
buf = f.readline()
if buf: # if len(buf) > 0 容器,可以直接作为判断条件,容器中有内容,为True,没有数据是False
print(buf, end='')
else:
# 文件读完了
break
f.close()
f = open('b.txt', 'r', encoding='utf-8')
while True:
buf = f.read(5) # f.read(4096)
if buf:
# print(buf, end='')
print(buf)
else:
break
f.close()
f = open('c.txt', 'wb')
f.write('你好'.encode()) # encode() 将str 转换为二进制格式的字符串
f.close()
f1 = open('c.txt', 'rb')
buf = f1.read()
print(buf)
print(buf.decode())
f1.close()
# 1. 用只读的方式,打开文件
f = open('a.txt', 'rb')
# 2. 读取文件内容
buf = f.read()
# 3. 关闭文件
f.close()
# 4. 只写的方式,打开新文件
f_w = open('a[备份].txt', 'wb')
# 5. 将 第 2 步读取的内容写入新文件
f_w.write(buf)
# 6. 关闭新文件
f_w.close()
file_name = input('请输入要备份的文件名')
# 1. 用只读的方式,打开文件
f = open(file_name, 'rb')
# 2. 读取文件内容
buf = f.read()
# 3. 关闭文件
f.close()
# 根据原文件名,找到文件后缀和文件名
index = file_name.rfind('.')
# 后缀 file_name[index: ]
# 新文件名
new_file_name = file_name[:index] + '[备份]' + file_name[index:]
print(new_file_name)
# 4. 只写的方式,打开新文件
f_w = open(new_file_name, 'wb')
# 5. 将 第 2 步读取的内容写入新文件
f_w.write(buf)
# 6. 关闭新文件
f_w.close()
报以上错误,需要在根目录下创建test文件夹
import os
def create_files():
for i in range(10):
file_name = 'test/file_' + str(i) + '.txt'
print(file_name)
f = open(file_name, 'w')
f.close()
def create_files_1():
os.chdir('test')
for i in range(10, 20):
file_name = 'file_' + str(i) + '.txt'
print(file_name)
f = open(file_name, 'w')
f.close()
os.chdir('../') # ../ 上一级目录
def modify_filename():
os.chdir('test')
buf_list = os.listdir()
# print(buf_list)
for file in buf_list:
new_file = 'py43_' + file
os.rename(file, new_file)
os.chdir('../')
def modify_filename_1():
os.chdir('test')
buf_list = os.listdir()
# print(buf_list)
for file in buf_list:
num = len('py43_')
new_file = file[num:]
os.rename(file, new_file)
os.chdir('../')
# create_files()
# create_files_1()
# modify_filename()
modify_filename_1()
import os
# 定义学生列表,保存所有的学生信息
stu_list = []
def show_menu():
print('1. 添加学生')
print('2. 删除学生')
print('3. 修改学生信息')
print('4. 查询单个学生信息')
print('5. 查询所有的学生信息')
print('6. 退出系统')
def insert_student():
# 1. 通过 input 函数获取学生的信息, 姓名, 年龄, 性别
name = input('请输入学生名字:')
# [{}, {}, {}] 判断的是字典中的 value 是否存在
for stu in stu_list:
if stu['name'] == name:
print('----------学生信息存在---------')
return # 结束函数的执行
age = input('请输入学生年龄:')
gender = input('请输入学生性别:')
# 2. 将学生信息转换为字典进行保存
stu_dict = {'name': name, 'age': int(age), 'gender': gender}
# 3. 将这个学生字典添加的列表中
stu_list.append(stu_dict)
print('==============学生信息添加成功====================')
def remove_student():
# 1. 使用 input 获取要删除 /修改/查询 的学生姓名
name = input('请输入要操作的学生的名字:')
# 2. 判断学生信息是否存在
for stu in stu_list:
if stu['name'] == name:
# 3. 学生存在,对学生进行 删除 /修改/查询 操作
stu_list.remove(stu)
# return
break
# 4. 学生信息不存在,直接结束
else:
print('***********该学生信息不存在,无法删除**************')
def modify_student():
# 1. 使用 input 获取要删除 /修改/查询 的学生姓名
name = input('请输入要操作的学生的名字:')
# 2. 判断学生信息是否存在
for stu in stu_list:
if stu['name'] == name:
# 3. 学生存在,对学生进行 删除 /修改/查询 操作
stu['age'] = int(input('请输入新的年龄:'))
# return
break
# 4. 学生信息不存在,直接结束
else:
print('***********该学生信息不存在,无法修改**************')
def search_student():
# 1. 使用 input 获取要删除 /修改/查询 的学生姓名
name = input('请输入要操作的学生的名字:')
# 2. 判断学生信息是否存在
for stu in stu_list:
if stu['name'] == name:
# 3. 学生存在,对学生进行 删除 /修改/查询 操作
print(f'姓名:{stu["name"]}, 年龄:{stu["age"]}, 性别:{stu["gender"]}')
# return
break
# 4. 学生信息不存在,直接结束
else:
print('***********该学生信息不存在**************')
def show_all_info():
if len(stu_list) > 0:
for stu in stu_list:
print(f'姓名:{stu["name"]}, 年龄:{stu["age"]}, 性别:{stu["gender"]}')
# print(stu)
else:
print('目前没有学生信息')
def save():
# 1. 打开文件
f = open('student.txt', 'w', encoding='utf-8')
f.write(str(stu_list))
f.close()
def load_file():
global stu_list
if os.path.exists('student.txt'):
f = open('student.txt', 'r', encoding='utf-8')
buf = f.read()
if buf:
stu_list = eval(buf)
f.close()
def main():
load_file() # 只执行一次
while True:
show_menu()
opt = input('请输入用来选择的操作编号:')
if opt == '1':
# print('1. 添加学生')
insert_student()
elif opt == '2':
# print('2. 删除学生')
remove_student()
elif opt == '3':
# print('3. 修改学生信息')
modify_student()
elif opt == '4':
# print('4. 查询单个学生信息')
search_student()
elif opt == '5':
# print('5. 查询所有的学生信息')
show_all_info()
elif opt == '6':
print('欢迎下次使用本系统......')
save()
break
else:
print('输入有误,请再次输入')
continue
input('...... 回车键继续操作.......')
main()