首页 Python基础入门视频教程 Python文件打开open()、关闭close()和with语句使用演示
pay pay

Python文件打开open()、关闭close()和with语句使用演示

日期: 二月 14, 2023, 8:23 a.m.
阅读: 430
作者: Python自学网-村长

摘要: Python文件打开open()、关闭close()和with语句使用演示

1.文件读和遍历

f = open('a.txt', 'r')
content = f.read(3)  # 3表示读取3个字节,同时下标会向右移动三个字节
content = f.readline()  # 表示读取一行,每次读取后指针移动一行
content = f.readlines()  # 把文件按照换行符进行读取,返回一个列表
print(content)
f.close()


f = open('files/123.jpg', 'r')
import collections.abc
print(isinstance(f, collections.abc.Iterator))  # 由此可见f也属于迭代器
for i in f:
    print(i, end='')


if f.readable():  # 通过readable()函数做一个容错处理
    content = f.readlines()
    for i in content:
        print(i, end='')

f.close()

# 一般情况下文件不是很大使用read()和readlines()方法直接读取整个文件
# readline()是一行一行的读取,适合处理较大文件,f是一个迭代器,使用for循环遍历也可以处理大文件

2.文件写入操作

f = open('files/a.txt', 'a')
if f.writable():  # 容错
    print(f.write('aaa'))  # 返回结果是写入字符的长度,不是文件中字符的长度
f.close()

3.关闭文件操作

# 文件关闭后会自动释放资源,其次还会立即清空缓冲区的数据内容到磁盘文件,否则可能会导致文件内容的丢失,使用断点验证
f.flush()  # 通过这个方法也可以清空缓冲区文件,执行磁盘写入
# 刷新缓冲区的三种情况:1.关闭文件时自动刷新;2.手动调用flush函数刷新;3.缓冲区已满会自动刷新
f = open('files/abcd.txt', 'w')
f.write('aaa')  # 到这里内容还不能写入文件,只有刷新缓冲区或关闭后才能写入
f.flush()

4.with简写

# 使用with语句,不用关闭和属性操作,with语句中已经从底层帮为你解决了这个问题
with open('files/abc.txt', 'w') as f:
    f.write('aaaaaa')

5.编码和解码

# with open('files/abc.txt', 'wb', encoding='utf-8') as f:
#     str = 'aaaaaaaaaaaaaaaaaaaa'
#     f.write(str)
with open('files/abc.txt', 'wb') as f:
    str = 'aaaaaaaaaaaaaaaaaaaa'
    f.write(str.encode('utf-8'))

with open('files/abc.txt', 'rb') as f:
    data = f.read()
    print(data)
    print(type(data))  # 字节类型数据,想使用转为字符串
    new_data = data.decode('utf-8')  # 编码和解码类型应该一致,否则会报错,特别是有中文字符时
    print(new_data)
    print(type(new_data))

with open('files/abc.txt', 'rb', errors='ignore') as f:  # errors='ignore'表示忽略编码错误
    pass

 

原创视频,版权所有,未经允许,切勿转载,违者必究!
回顶部