Python文件(一):文件类型、文件的打开,读取写入,关闭、文件备份、文件和文件夹的操作

一、文件

文件是存储在存储器上的一组数据序列,可以包含任何数据内容。
文件是数据的抽象和集合。
在这里插入图片描述

二、文件类型

在这里插入图片描述
文本文件:长字符串
在这里插入图片描述
二进制是信息按照非字符但有特定格式形成的文件,文件内部数据的组织格式与文件用途有关
在这里插入图片描述

在这里插入图片描述
二进制文件和文本文件区别:
1、最主要的区别在于是否有统一的字符编码,二进制文件由于没有统一的字符编码,只能当做字节流,不能看作字符串。
2、无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作不同。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
采用文本文件方式读入文件,文件经过编码形成字符串,打印出有含义的字符。
采用二进制方式打开文件,文件被解析为字节流。由于存在编码,字符串中的一个字符由多个字节表示。

f = open("C:\\Users\\520\\Desktop\\a.txt", "tr", encoding="utf-8")
print(f.readline())
f.close()

输出:
送你一朵小红花。

例2:
Traceback (most recent call last):
  File "C:/Users/520/PycharmProjects/pythonProject1/guessnum.py", line 1, in <module>
    f = open("C:\\Users\\520\\Desktop\\a.txt", "br", encoding="utf-8")
ValueError: binary mode doesn't take an encoding argument

f = open("C:\\Users\\520\\Desktop\\a.txt", "br")
print(f.readline())
f.close()
输出:
b'\xe9\x80\x81\xe4\xbd\xa0\xe4\xb8\x80\xe6\x9c\xb5\xe5\xb0\x8f\xe7\xba\xa2\xe8\x8a\xb1\xe3\x80\x82'

三、文件的打开和关闭

  • Python对文本文件和二进制文件采用统一的操作步骤,即“打开-操作-关闭”。
  • 操作系统中的文件默认处于存储状态,首先需要将其打开,使得当前程序有权操作这个文件。打开后的文件处于占用状态,此时,另一个进程不能操作这个文件。可以通过一组方法读取文件的内容或向文件写入内容,操作之后需要将文件关闭,关闭将释放对文件的控制使文件恢复成存储状态,此时,另一个进程将能够操作这个文件。
    在这里插入图片描述
  • Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法:
    文件对象 = open(“文件路径及文件名及扩展名”, “打开模式”)
    在这里插入图片描述
    在这里插入图片描述
    注意:文件路径及名称及扩展名,"“是转义符和续行符,所以改为”\“或”/"
    open()返回的即是文件对象
    在这里插入图片描述
    在这里插入图片描述
    r为读模式, w, x, a为写模式,t, b为打开模式,可以使用"+"组合使用,形成既表达读写又表达文件模式的方式
    r:read,w:wipe,x:exist,a:append,t:text,b:binary

在这里插入图片描述

变量名=open(文件名,“r”)
以文本方式打开一个文件,只读模式,读入后不能对文件进行修改

变量名=open(文件名,“r+”)
以文本方式可读写地打开一个文件,可以读入并修改文件

变量名=open(文件名,“a”)
以文本追加写方式打开一个文件,不能读信息

变量名=open(文件名,“a+”)
以文本追加写方式打开一个文件,可以读文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
当文件关闭后,再对文件进行读写将产生I/0操作错误。
在这里插入图片描述

四、文件的读取

在这里插入图片描述
如果文件以文本文件方式打开,则读入字符串;如果文件以二进制方式打开,则读入字节流。

f.read(),一次性读入整个文件所有内容,返回一个字符串
f.readline(),一次读取一行,返回一个字符串,调用多次读多行
f.readlines(),一次性读入整个文件所有内容,返回一个列表,列表的每个元素是字符串,是文件的每一行

对于大文件,一次性地读入会耗费非常多的时间和资源
在这里插入图片描述
在这里插入图片描述

f = open("C:\\Users\\520\\Desktop\\a.txt", "rt")
print(f.read(2)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值