描述

在做一个登陆界面的时候,需要查找账号密码,注册账号密码,小型表想着不使用MySQL也能流畅运行,于是选择修改txt文件作为数据库

Python - with open()、os.open()、open()的详细使用

读取txt

image-20230504200835062

1、

1
2
3
4
5
f=open('唐诗一百首.txt', encoding='gbk')
txt=[]
for line in f:
txt.append(line.strip())
print(txt)
image-20230504200822823

2、

line.strip() 去除首尾空格 encoding 编码格式 utf-8,gb

1
2
3
4
5
6
7
8
9
f=open('唐诗一百首.txt')
line = f.readline().strip() #读取第一行
txt=[]
txt.append(line)
while line: # 直到读取完文件
line = f.readline().strip() # 读取一行文件,包括换行符
txt.append(line)
f.close() # 关闭文件
print(txt)
image-20230504200659079

3、

1
2
3
4
5
6
f=open('唐诗一百首.txt')

data = f.readlines() # 直接将文件中按行读到list里,效果与方法2一样

f.close() # 关
print(data) #返回list
image-20230504200639599

读取出的有换行符

写入txt

1
file_handle=open(``'1.txt'``,mode=``'w'``)

open()参数有(1.文件名,mode模式)

mode模式有以下几种:

模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

1、

1
2
3
4
# 2.1 write 写入
#\n 换行符
file_handle.write('hello word 你好 \n')
file_handle.close()

write() 方法将指定的文本写入文件。指定的文本将插入的位置取决于文件模式和流位置。

  • "a":文本将插入当前文件流的位置,默认情况下插入文件的末尾。
  • "w":在将文本插入当前文件流位置(默认为 0)之前,将清空文件

使用with open

1
2
with open(path,mode) as f:
f.read()