python --文件操作模式详解
#f= open(r"aaa/a.txt",mode='rt') # f的值是一种变量,占用的是应用程序的内存空间,此时牵扯的是两个方面的资源
#print(f)
##2.操作文件:读/写文件,应用程序对文件的读写请求都是向操作系统调用,然后由操作系统控制把硬盘把输入读入内存,或者写入硬盘
#res=f.read()
#print(res)
#关闭文件 z
#f.close()"""回收操作系统资源,f 还存在"""
#f变量还存在,但是不能再读了
#del f """回收应用程序程序资源"""
#文件对象又称为文件句柄
# with open("a.txt",mode='rt') as f1:
# res=f1.read()
# print(res)
# with open("a.txt",mode='rt') as f1,open("b.txt",mode='rt') as f2:
# res1=f1.read()
# res2=f2.read()
# print(res1)
# print(res2)
"""指定字符编码"""
"""t 文本(默认的模式)
1。 读写都是以str (unicode)为单位的
2。文本文件
3。必须指定encoding='utf-8'"""
# 没有指定encoding 参数操作系统会使用自己的默认的编码,
# Linux 和mac 默认使用utf-8
# Windows默认gbk
# with open ('c.txt',mode='rt',encoding='utf-8') as f:
# res=f.read() #t模式会将f.read()读出来的结果解码成unicode
# print(res,type(res))
#
#内存:utf-8格式的二进制----解码--->unicode
#硬盘(c.txt 内容 utf-8格式的二进制)
#以t 模式为基础进行内存操作
##1.rt
在本python文件的目录下创建一个name.txt的文本文件,
izhan:1005
inp_username = input("please input your name:").strip() inp_password = input("please input your password:").strip() with open("name.txt",mode='rt',encoding='utf-8') as f: res=f.read() print(res) username,password=res.split(":") print(username) print(password) print(inp_username) print(inp_password) if inp_username == username and inp_password == password: print("congratulations! you can login") else: print("sorry! the password is wrong or has no this user")
please input your name:izhan please input your password:1005 izhan 1005 izhan 1005 congratulations! you can login 随便输入看看: please input your name:dandan please input your password:0711 izhan 1005 dandan 0711 sorry! the password is wrong or has no this user Process finished with exit code 0
再创建一个name.txt 文件
izhan:1005
lili:1111
dandan:0711
另外:python spit 的学习:
https://www.cnblogs.com/clairedandan/p/10926173.html
inp_username = input("please input your name:").strip() inp_password = input("please input your password:").strip() with open("name.txt",mode='rt',encoding='utf-8') as f: for line in f: print(line,end='') # 没有end='',结果就会一行一行中间有一行空的。 username,password=line.strip().split(":") # print(username) # print(password) if inp_username == username and inp_password == password: print("login successfully") break else: print("账号错误")
please input your name:lili please input your password:0711 izhan:1005 lili:1111 dandan:0711账号错误 Process finished with exit code 0 please input your name:izhan please input your password:1005 izhan:1005 login successfully Process finished with exit code 0
"""w:只写模式,当文件不存在时会创造空文件,当文件存在时会清空文件,"""
# with open("d.txt",mode="wt",encoding="utf-8") as f:
# # f.read()"""报错,不可读"""
# f.write("hahaha\n")
# f.write("hello\n")
# f.write("wwwwww\n")
##如果重新打开文件,则会清空之前的内容,如果连续write,则会连续写的
"""3.a 只追加写,"""
# with open("a.txt",mode="at",encoding="utf-8") as f:
# # f.read() 不能读
# f.write("hahahahah\n")
# f.write("enenenenen\n")
# f.write("oooooo\n")
"""a 重新打开文件,不会清空文件内容,会将文件指针直接移动到末尾
a 文件一直用作记录日志,注册功能"""
"""a 模式注册功能"""
# name=input("please input your name:")
# pwd=input("please input your password:")
# with open("db.txt",mode="at",encoding="utf-8") as f:
# f.write("{}:{}\n".format(name,pwd))
w 可以用做文本文件的copy
with open("e.txt",mode="rt",encoding="utf=8")as f1,\ open("f.txt",mode="wt",encoding="utf-8")as f2: res=f1.read() f2.write(res)
src_file=input("源文件文件:") dst_file=input("目标文件:") with open(r"{}".format(src_file),mode="rt",encoding="utf=8")as f1,\ open(r"{}".format(dst_file),mode="wt",encoding="utf-8")as f2: res=f1.read() f2.write(res)
/usr/local/bin/python3.8 /Users/futantan/PycharmProjects/S14/文件知识/文件处理.py 源文件文件:/Users/futantan/PycharmProjects/S14/文件知识/a.txt 目标文件:/Users/futantan/PycharmProjects/S14/a_copy.txt Process finished with exit code 0
此时就可以发现有一个copy的文件了
每天进步一点点~~