当前位置: 首页 > news >正文

66-python中的文件操作

1. 文件的编码

UTF-8
GBK
GB2312
Big5
GB18030

2. 文件读取

文件操作步骤:
打开文件
读\写文件
关闭文件

open(name,mode,encoding)
name:文件名字符串 “D:/haha.txt”
mode: 只读、写入、追加
r:以只读方式打开
w: 只用于写
a :用于追加
encoding:编码方式

# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 01_文件的读取.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/11 14:12
"""
import time#打开一个文件
#f=open("D:/测试.txt","r",encoding="GBK")
#print(type(f))#print(f"读取10个字节的内容:{f.read(10)}")
# print(f"读取全部的内容:{f.read()}")#读取的是全部的行
# lines=f.readlines()
# print(type(lines))
# print(f"内容是====:{lines}")#逐行读取
# line1=f.readline()
# print(line1)#使用循环读取# for line in f:
#     print(f"每一行是:{line}")
#
# #文件的关闭
# f.close()#使用with语法去打开文件
with open("D:/abc.txt","r",encoding="GBK") as f:for line in f:print(line)time.sleep(1)#单位是秒

3. 文件写入

# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 02_文件写入.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/11 14:25
"""f = open("D:/abc.txt","w",encoding="GBK")
f.write("Hello World")
f.flush()#清空管道  涮新缓存区
f.close()#关闭文件
print("写入成功了")

4.文件操作综合案例

# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 04_注册登录.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/11 14:54
"""import os#定义用户的数据文件存储位置
USER_DATA_FILE="D:/userss.txt"#确保我的文件是存在的
def ensure_file_exists():"""确保文件存在,如果不存在就创建它"""if not os.path.exists(USER_DATA_FILE):#没有就创建with open(USER_DATA_FILE,"w",encoding="GBK") as f:passprint(f"用户文件{USER_DATA_FILE}已经创建完毕了")#注册
def register():"""注册新的用户"""print("=========用户注册========")username=input("请输入用户名").strip()#检查用户名名是不是空的if not username:print("用户名不能为空!")return Falsepassword=input("请输入密码").strip()confirm_password=input("请再次输入密码").strip()#检查两次密码是否一致if not password or not confirm_password:print("密码不能为空!")return Falseif password != confirm_password:print("两次密码输入不一致!")return False#用户名如果已经被注册过了你就不能注册了,稍后再写  存数据的格式: liushao:adminif user_exists(username):print("错误:该用户名已经被注册过了,请选择其他的用户名")return False#执行文件的写入try:with open(USER_DATA_FILE,"a",encoding="GBK") as f:f.write(f"{username}:{password}\n")print(f"恭喜你{username}注册成功了")return Trueexcept Exception as e:print(f"写入失败了因为{e}")return False#判断用户名是否被注册过了
def user_exists(username):"""检查用户名是否存在"""try:with open(USER_DATA_FILE,"r",encoding="GBK") as f:for line in f:line=line.strip()if line:#确保不是空行name=line.split(":")[0]#拿到用户名部分if username==name:return Truereturn Falseexcept FileNotFoundError:# 如果文件不存在,说明还没有用户return Falseexcept Exception as e:print(f"检查用户名的时候出现了错误{e}")return False#登录
def login():"""用户登录"""print("=========用户登录========")username = input("请输入用户名:").strip()password = input("请输入密码:").strip()if not username or not password:print("用户名或者密码不能为空")return Falseif validate_userinfo(username,password):print(f"欢迎回来:{username}")return Trueelse:print("用户名或者密码错误!")return Falsedef validate_userinfo(username,password):"""验证用户名或者密码是否正确"""try:with open(USER_DATA_FILE,"r",encoding="GBK") as f:for line in f:line=line.strip()if line:#跳过空行parts=line.split(":",1)#分隔1次if(len(parts)==2):my_username,my_password=parts#反向赋值if my_username==username and my_password==password:return True#print("----------注意看下面的数据:-----------")#print(parts)#没有写完呢 输出看一下  ['liushao', 'admin']#return Truereturn Falseexcept FileNotFoundError:print("未知错误")return Falsedef main():ensure_file_exists()#先判断我们的文件有没有while True:print("*"*36)print("简易的注册登录重点训练文件读取和写入")print("\t\t\t 1.注册")print("\t\t\t 2.登录")print("\t\t\t 3.退出")print("*" * 36)choice=input("请选择[1--3]").strip()if choice=="1":register()elif choice=="2":login()elif choice=="3":print("感谢使用,再见!")breakelse:print("请输入 1  2  3 其中的一个数字")if __name__ == "__main__":main()"""
************************************
简易的注册登录重点训练文件读取和写入1.注册2.登录3.退出
************************************
请选择[1--3]1
=========用户注册========
请输入用户名beijing
请输入密码beijing
请再次输入密码beijing
恭喜你beijing注册成功了
************************************
简易的注册登录重点训练文件读取和写入1.注册2.登录3.退出
************************************
请选择[1--3]2
=========用户登录========
请输入用户名:beijing
请输入密码:beijing
欢迎回来:beijing
************************************
简易的注册登录重点训练文件读取和写入1.注册2.登录3.退出
************************************
请选择[1--3]3
感谢使用,再见!"""

文章转载自:

http://qw9Y5nYZ.jrrqs.cn
http://VZyiZxIm.jrrqs.cn
http://qhscYI1Z.jrrqs.cn
http://urfn1eZ2.jrrqs.cn
http://Xqo38EWM.jrrqs.cn
http://ld6dksaL.jrrqs.cn
http://r9Ls5uDp.jrrqs.cn
http://IwEovu5p.jrrqs.cn
http://HKvSYgk1.jrrqs.cn
http://Ps3DHmD7.jrrqs.cn
http://6vVTJSql.jrrqs.cn
http://ui2icTNe.jrrqs.cn
http://2IV0lYD7.jrrqs.cn
http://cJrZC0hn.jrrqs.cn
http://UsncSMrW.jrrqs.cn
http://dyZ5accC.jrrqs.cn
http://uykr52HQ.jrrqs.cn
http://vn1PYmn1.jrrqs.cn
http://BSamrYnk.jrrqs.cn
http://fD9i0nzI.jrrqs.cn
http://KGFB6kiW.jrrqs.cn
http://2nE06l7Y.jrrqs.cn
http://v73bPrR5.jrrqs.cn
http://ZhcXdgjj.jrrqs.cn
http://qZeLo1pK.jrrqs.cn
http://TxiZ0MpP.jrrqs.cn
http://M22pEx9i.jrrqs.cn
http://XnUWBAze.jrrqs.cn
http://WbGKfozg.jrrqs.cn
http://yhJfSZ2M.jrrqs.cn
http://www.dtcms.com/a/379347.html

相关文章:

  • 【PostgreSQL内核学习 —— (SeqScan算子)】
  • 资源图分配算法
  • SpringBoot 中单独一个类中运行main方法报错:找不到或无法加载主类
  • 2025全球VC均热板竞争格局与核心供应链分析
  • 用“折叠与展开”动态管理超长上下文:一种 Token 高效的外部存储操作机制
  • 深度解析指纹模块选型与落地实践
  • 从用户体验到交易闭环的全程保障!互联网行业可观测性体系建设白皮书发布
  • grafana启用未签名插件
  • MySQL 数据类型与运算符详解
  • 编程实战:类C语法的编译型脚本解释器(五)变量表
  • 原生js拖拽
  • 数据结构--Map和Set
  • P1122 最大子树和
  • 【3DV 进阶-3】Hunyuan3D2.1 训练代码详细理解之-Flow matching 训练 loss 详解
  • Python写算法基础
  • 数据结构 优先级队列(堆)
  • FunASR GPU 环境 Docker 构建完整教程(基于 CUDA 11.8)
  • 探讨:线程循环与激活(C++11)
  • 拆解格行随身WiFi多网协同模块:智能切网+马维尔芯片,如何实现5秒跨网?
  • 游泳溺水检测识别数据集:8k图像,2类,yolo标注
  • ARM裸机开发:链接脚本、进阶Makefile(bsp)、编译过程、beep实验
  • 开始 ComfyUI 的 AI 绘图之旅-Flux.1图生图之局部重绘(Inpaint)和扩图(Outpaint)(九)
  • 2025.9.11day1QT
  • ubuntu24.04+5070ti训练yolo模型(1)
  • ubuntu2204配置网桥
  • 【VLMs篇】07:Open-Qwen2VL:在学术资源上对完全开放的多模态大语言模型进行计算高效的预训练
  • Ubuntu24.04安装 Fcitx5并设置五笔字型的方法
  • 格式塔是什么?带你理解信息组织与用户体验优化
  • AVLTree(C++ Version)
  • You Only Look Once