Python基础学习(21)—文件(打开与关闭)

文件

文件(File)的简介

通过Python来对计算机中的各种文件进行增删改查的操作
I/O(Input/Output)

1.1 文件打开

操作文件的步骤
1 打开文件
2 对文件进行各种操作(读、写)
3 关闭

1 使用open()函数来打开一个文件
首先介绍一些文件打开的有关知识
open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)
file指定的是文件路径,分为绝对路径与相对路径

绝对路径:总是从根文件夹开始,Window 系统中以盘符(C:、D:)作为根文件夹.
例如,D:\新建文件夹\文件.py 就是一个绝对路径

相对路径:指的是文件相对于当前工作目录所在的位置。
例如,当前工作目录为 “D:\新建文件夹”,若文件 ‘文件.py’ 就位于这个文件夹下,
则 demo1.txt 的相对路径表示为 “.\demo1.txt”(其中 .\ 就表示当前所在目录)。

2 调用open()来打开一个文件,可以将文件分成两种类型
一种 是纯文本文件(使用utf-8等编码写的文本文件)
一种 是二进制文件(图片、音频、PPT等文件)

open()这个函数打开文件时,默认是以文本文件的形式打开的,就是open()函数参数中的 mode=‘r’

3 处理文本文件时,有时候需要制定文件的编码’encoding’

4 buffering如果为0表示不进行缓冲;如果为1表示进行“行缓冲“;如果是一个大于1的数表示缓冲区的大小,应该是以字节为单位的。

5 read()方法来读取文件的内容,它会将内容全部保存到一个字符串返回

下面举两个例子来打开一个文件
1 首先创建一个1.txt文件,放入所写的内容
在这里插入图片描述

file_name = '1.txt'

file_obj = open(file_name)

# read()方法来读取文件的内容,它会将内容全部保存到一个字符串返回
content = file_obj.read()

print(content)

#1,2,3,4,5

2 首先创建一个demo1.txt文件,放入所写的内容
在这里插入图片描述

file_name = 'demo1.txt'

# file_obj = open(file_name)

content = file_obj.read()

print(content) # UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 2: illegal multibyte sequence
报错说明中文的编码不是默认的ACAll码

可是将encoding修改一下encoding = 'Utf-8'就可以
file_obj = open(file_name,encoding = 'utf-8')
content = file_obj.read()
print(content)
#披绣闼,俯雕甍,山原旷其盈视,川泽纡其骇瞩。
闾阎扑地,钟鸣鼎食之家;舸舰迷津,青雀黄龙之舳。云销雨霁,彩彻区明。
落霞与孤鹜齐飞,秋水共长天一色。
渔舟唱晚,响穷彭蠡之滨;雁阵惊寒,声断衡阳之浦。

1.2关闭文件

1 close()方法用来关闭文件

file_obj.close()

file_name = '1.txt'

file_obj = open(file_name)


content = file_obj.read()
print(content)
# 1,2,3,4,5,6,7
file_name.close()

print(content) # ValueError: I/O operation on closed file.
说明文件已关闭

2 with … as 语句 来打开一个文件,# 语法 with open(file_name) as file_obj
此时这个文件只能在with中使用,一旦with结束文件则会自动close()关闭

下面举例来说明一下

file_name = '1.txt'

try:
    with open(file_name) as file_obj:

        # 在 with语句中可以直接使用file_obj来操作文件
        print(file_obj.read())
        # 1, 2, 3, 4, 5, 6, 7
except FileNotFoundError:

    print(f'{file_name} 文件不存在...')

print(file_obj.read()) # ValueError: I/O operation on closed file.
说明文件已关闭

1.3标注的一个操作文件的代码

try:
    with open('xxx') as file_obj:

        pass
except FileNotFoundError:
    pass
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值