文件读写之读文件

"""
读文件
    1.打开文件
    open(path,flag,encoding,errors)
    path:要打开文件的路径
    flag:打开方式
        打开方式有:
        r:以只读的方式打开文件,文件的描述符放在文件的开头(
            描述符在哪,从哪开始读)
        rb:以二进制的格式打开一个文件用于只读,放在开头
        r+:打开文件用于读写,放在开头
        w:打开一个文件只用于写入,如果文件存在就覆盖,不存在创建新文件
        wb:以二进制的格式打开一个文件只用于写入,如果文件存在就覆盖,不存在创建新文件
        w+:打开一个文件用于读写
        a:打开一个文件用于追加(append),
            如果文件存在,文件描述符放在末尾,从末尾加内容

    encoding:编码方式
    errors:错误处理

    2.读文件内容
    3.关闭文件
"""

读文件三步走:

1.打开文件

2.读取

        读取文件的方式比较多,常用的有r,w,rb,r+等

3.关闭文件

1.读取全部内容

# 1.打开文件
path = r"C:\Users\Dear\Desktop\1.txt"
# encoding,ignore可以省略
f = open(path, 'r', encoding='utf-8', errors='ignore')

# 2.读文件内容
# 读取文件全部内容 适合读取文件比较小的
str1 = f.read()
print(str1)

# 3.关闭文件
f.close()

代码示例图:

这种读取方式有局限性,假如读取的文件超级大,内存根本放不下

2.读取指定长度的字符,在这里读的时候要把之前的读取代码注释掉,要不然读的起始位置在文末,会读不出来任何内容

# 1.打开文件
path = r"C:\Users\Dear冯\Desktop\1.txt"
# encoding,ignore可以省略
f = open(path, 'r', encoding='utf-8', errors='ignore')

# 2.读文件内容
# 读取文件全部内容 适合读取文件比较小的
# str1 = f.read()
# 读取几个字符 在这里读的时候要把之前读的注释掉,要不然读的起始位置在文末
str2 = f.read(10)
print(str2)
# 接着读
str3 = f.read(10)
print(str3)

# print(str1)
# 3.关闭文件
f.close()

 代码示例图:

3.逐行去读

代码如下:

"""
读文件
    1.打开文件
    open(path,flag,encoding,errors)
    path:要打开文件的路径
    flag:打开方式
        打开方式有:
        r:以只读的方式打开文件,文件的描述符放在文件的开头(
            描述符在哪,从哪开始读)
        rb:以二进制的格式打开一个文件用于只读,放在开头
        r+:打开文件用于读写,放在开头
        w:打开一个文件只用于写入,如果文件存在就覆盖,不存在创建新文件
        wb:以二进制的格式打开一个文件只用于写入,如果文件存在就覆盖,不存在创建新文件
        w+:打开一个文件用于读写
        a:打开一个文件用于追加(append),
            如果文件存在,文件描述符放在末尾,从末尾加内容

    encoding:编码方式
    errors:错误处理

    2.读文件内容
    3.关闭文件
"""
# 1.打开文件
path = r"C:\Users\Dear冯\Desktop\1.txt"
# encoding,ignore可以省略
f = open(path, 'r', encoding='utf-8', errors='ignore')

# 2.读文件内容
# 读取文件全部内容 适合读取文件比较小的
# str1 = f.read()
# 读取几个字符 在这里读的时候要把之前读的注释掉,要不然读的起始位置在文末
str2 = f.read(10)
print(str2)
# 接着读
str3 = f.read(10)
print(str3)
# 读1行
str4 = f.readline()
print(str4)
str5 = f.readline()
print(str5)

# print(str1)
# 3.关闭文件
f.close()

代码示例图:

4.读取所有的行,返回列表类型的值

代码如下:

# 1.打开文件
path = r"C:\Users\Dear冯\Desktop\1.txt"
# encoding,ignore可以省略
f = open(path, 'r', encoding='utf-8', errors='ignore')
# 读取所有行返回列表
list1 = f.readlines()
print(list1)
# 3.关闭文件
f.close()

代码示例图:

此时此刻,我们可以对列表类型的数据进行操作,比如说 遍历等

5.改变描述符的位置,可以再次读取

# 1.打开文件
path = r"C:\Users\Dear冯\Desktop\1.txt"
# encoding,ignore可以省略
f = open(path, 'r', encoding='utf-8', errors='ignore')

str1 = f.read()
print(str1)
f.seek(0)
# 更改描述符的位置 可以再次读取
str2 = f.read()
print(str2)
# 3.关闭文件
f.close()

代码示例图如下:

 两种比较简洁的读取文件方式:

1.

try:
    f = open(path, 'r', encoding='utf-8', errors='ignore')
    print(f.read())
finally:
    if f:
        f.close()

2.

with方法会自动关闭文件

with open(path, 'r', encoding='utf-8', errors='ignore') as f2:
    print(f2.read())
发布了59 篇原创文章 · 获赞 49 · 访问量 6079

猜你喜欢

转载自blog.csdn.net/weixin_38114487/article/details/104217859