【黑马python:文件操作】85-90

目录

  • 一、文件编码的概念
  • 二、文件的读取操作
    • 1.打开文件
    • 2. 读取文件
    • 3. 关闭文件
    • 4.课后练习
  • 四、文件的写入操作
  • 五、文件的追加
    • 案例

一、文件编码的概念

1.什么是编码?
编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。
编码有许多中,我们最常用的是UTF-8编码
2.为什么需要使用编码?
计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。

二、文件的读取操作

1.打开文件

open(打开函数)
在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:
open(name,mode,encoding)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
encoding:编码格式(推荐使用UTF-8)

【黑马python:文件操作】85-90_第1张图片

# 打开文件
f = open("D:/python study/test.txt", "r", encoding="UTF-8")
print(type(f))

2. 读取文件

read

# 读取文件1
print(f"读取10个字节的结果:{f.read(10)}")
print(f"读取全部内容的结果:{f.read()}")

readlines

# 读取文件1
# print(f"读取10个字节的结果:{f.read(10)}")
# print(f"读取全部内容的结果:{f.read()}")
print("-------------------------")
# 读取文件2
lines = f.readlines() # 读取文件的全部行,并封装到列表中
print(f"lines的类型是{type(lines)}")
print(f"lines的内容是{lines}")

readline

# 读取文件3
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
print(f'第一行数据是{line1}')
print(f'第一行数据是{line2}')
print(f'第一行数据是{line3}')

for循环读取

# for循环读取
for line in f:
    print(f"该行数据是{line}")

3. 关闭文件

close( ) 关闭文件对象

通过close,关闭文件对象,也就是关闭对文件的占用;
如果不调用close,同时程序没有停止运行,那么这个文件将一直被Python程序占用。

# 文件的关闭
# time.sleep(500000)
f.close()
# with open
with open("D:/python study/test.txt", "r", encoding="UTF-8") as f:
    for line in f:
        print(f"该行数据是{line}")

【黑马python:文件操作】85-90_第2张图片

4.课后练习

【黑马python:文件操作】85-90_第3张图片

# 课后作业
f = open("D:/python study/pythonProject/word.txt", "r", encoding="UTF-8")
# 1:读取全部内容
content = f.read()
count = content.count("itheima")
print(f"itheima在文件中出现了{count}次。")

四、文件的写入操作

1.打开文件
f = open(‘python.txt’,'w")
2.文件写入
f.write(‘hello world’)
3.内容刷新
f.flush()

直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区;
当调用flush的时候,内容会真正写入文件;
这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)

# 文件的写入,打开不存在的文件
f = open("D:/python study/test1.txt", "w", encoding="UTF-8")
# write写入
f.write('hello world')  # 内容写入到内存中


# flush刷新
f.flush()  # 将内存中积攒的内容,写入到硬盘的文件中
# 程序睡眠
# time.sleep(60000)
f.close()  # close方法,内置了flush的功能的

1.写入文件:
使用open函数的”w”模式进行写入
2.写入的方法有:
write(),写入内容
flush(),刷新内容到硬盘中
3.注意事项:
w模式,文件不存在,会创建新文件;
w模式,文件存在,会清空原有内容 ;
close()方法,带有flush()方法的功能

五、文件的追加

1.打开文件,通过a模式打开即可
f = open(‘python.txt’,'a)
2.文件写入
f.write(‘hello world’)
3.内容刷新 f.flush()
a模式,文件不存在,会创建文件;
a模式,文件存在,会在最后,追加写入文件.

# # 文件的追加,打开不存在的文件
# f = open("D:/python study/test2.txt", "a", encoding="UTF-8")
# # write写入
# f.write("枪枪爆头好运连连")
# f.flush()
# f.close()

# 文件的追加,打开存在的文件
f = open("D:/python study/test2.txt", "a", encoding="UTF-8")
f.write("\n卧室狙击手谢英,正片开始了。")
f.flush()
f.close()

案例

【黑马python:文件操作】85-90_第4张图片
【黑马python:文件操作】85-90_第5张图片

# example
f1 = open("D:/python study/bill.txt", "r", encoding="UTF-8")
# 因为w是覆盖前面代码没启动之前存在的内容,代码启动之后重新进去的所有内容不会被覆盖,都是新内容
f2 = open("D:/python study/bill.txt.bak", "w", encoding="UTF-8")

for line in f1:
    line = line.strip()
    if line.split(",")[-1] == "测试":
        continue    # continue进入下一次循环,这一次后面的内容就跳过了
    # 写出内容
    f2.write(line)
    # 由于前面对内容进行了strip( )的操作,所以要手动的写出换行符
    f2.write("\n")

f1.close()
f2.close()

你可能感兴趣的:(python,java,android)