英文建站网站,抖音小程序开发者平台,wordpress wrapper,网站怎么优化 优帮云我们平常对文件的基本操作#xff0c;大概可以分为三个步骤#xff08;简称文件操作三步走#xff09;#xff1a;
① 打开文件
② 读写文件
③ 关闭文件
【注意事项】
注意#xff1a;可以只打开和关闭文件#xff0c;不进行任何读写
文件打开
open函数#xff…我们平常对文件的基本操作大概可以分为三个步骤简称文件操作三步走
① 打开文件
② 读写文件
③ 关闭文件
【注意事项】
注意可以只打开和关闭文件不进行任何读写
文件打开
open函数open(name, mode, encoding)
name是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。mode设置打开文件的模式(访问模式)只读、写入、追加等。encoding:编码格式推荐使用UTF-8
含义可以打开一个已经存在的文件如果文件不存在的话创建一个新文件
mode介绍 demoopen用法
fopen(test.txt,r,encodingUTF8) #如果文件不存在则报错 改成如下如果文件不存在则创建新文件
fopen(test.txt,w,encodingUTF8) 在test.txt中写入hello world之后再运行上面的代码内容会被清空覆盖写入 改成如下形式则是在原有内容后追加
fopen(test.txt,a,encodingUTF8)
with open用法可以自动关闭文件对象
with open(test.txt) as f:print(f.read())
文件读取
read函数文件对象.read(num)
num表示要从文件中读取的数据的长度单位是字节如果没有传入num那么就表示读取文件中所有的数据。
如下
fopen(test.txt,r,encodingUTF8)contentf.read()
print(content)
f.close()
运行结果
hello world readlines()方法
readlines可以按照行的方式把整个文件中的内容进行一次性读取并且返回的是一个列表其中每一行的数据为一个元素。
修改test.txt为
hello world
111
222
使用readlines()方法读取demo
fopen(test.txt,r,encodingUTF8)contentf.readlines()
print(content)
f.close()
运行结果
[hello world\n, 111\n, 222] readline()方法一次读取一行内容
fopen(test.txt,r,encodingUTF8)contentf.readline()
print(f第一行{content})contentf.readline()
print(f第二行{content})
f.close()
运行结果
第一行hello world第二行111 也可以用for循环读取文件行
for line in open(test.txt, r):print(line)
运行结果
hello world111222
文件写入
demo往test2.txt中写入一段字符test
fopen(test2.txt,w)
f.write(hello)
f.flush()
结果test.txt文件中hello world字符变成test字符
注意
直接调用write内容并未真正写入文件而是会积攒在程序的内存中称之为缓冲区当调用flush的时候内容会真正写入文件这样做是避免频繁的操作硬盘导致效率下降攒一堆一次性写磁盘
文件追加
fopen(test2.txt,a)
f.write(cc)
f.flush()
注意事项
a模式文件不存在会创建新文件a模式文件存在会在原有内容后面继续写入可以使用”\n”来写出换行符
综合案例
需求将文件写道test.bak文件作为备份同时将文件内包含测试一行的数据丢弃
aaa,2022-01-01,100000,消费,正式
bbb,2022-01-02,300000,收入,正式
ccc,2022-01-03,100000,消费,测试
aaa,2022-01-01,300000,收入,正式
aaa,2022-01-02,100000,消费,测试
bbb,2022-01-03,100000,消费,正式
aaa,2022-01-04,100000,消费,测试
bbb,2022-01-05,500000,收入,正式
ccc,2022-01-01,100000,消费,正式
aaa,2022-01-02,500000,收入,正式
bbb,2022-01-03,900000,收入,测试
bbb,2022-01-01,500000,消费,正式
ddd,2022-01-02,300000,消费,测试
aaa,2022-01-03,950000,收入,正式
bbb,2022-01-01,300000,消费,测试
bbb,2022-01-02,100000,消费,正式
ccc,2022-01-03,300000,消费,正式
demo
fopen(test3.txt,r,encodingutf-8)
f2open(test.bak,w,encodingutf-8)for line in f:contentline.split(,)[-1].strip() //去空操作strip很重要if content测试:continuef2.write(line)f2.flush()f.close()
f2.close()