点我

了解

  • 在磁盘上读写文件的功能都是由操作系统提供的
  • 现代操作系统不允许普通的程序直接操作磁盘
  • 读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符)
  • 然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件(写文件)

函数open()

打开一个文件,创建一个file对象

open(name[, mode[, buffering]])
  • name:所要访问的文件名称
  • mode:打开文件的模式
  • buffering:编码

自动打开关闭

# with open("文件路径",'r'):

路径

  • 相对路径:从当前目录开始,../ 上级目录,. /当前目录
  • 绝对路径:从磁盘号开始,如:D:/pye/f.txt

打开模式

打开模式描述
r只读模式,默认值;如果文件不存在,返回FileNotFoundError
w覆盖写模式,文件不存在则创建,存在则完全覆盖
x创建写模式,文件不存在则创建,存在则返回FileExistsError
a追加写模式,文件不存在则创建,存在则在文件最后追加内容
b二进制文件模式
t文本文件模式,默认值
+与r、w、x、a一同使用,在原有的功能上增加同时读写功能

注意:r、w、x、a 可以和 b t + 组合使用

读入文件

1、read() 一次读入,统一处理

with open(r"G:\Programme\python\file\三国演义.txt",'r') as f:
    txt = f.read()
print(txt)

2、read(长度) 按数量读入,逐步处理

with open(r"G:\Programme\python\file\三国演义.txt",'r') as f:
    txt = f.read(3)
    while txt != "":
        print(txt,end="")
        txt = f.read(3)

3、readline() 分行读入,逐步处理

with open(r"G:\Programme\python\file\三国演义.txt",'r') as f:
    txt = f.readline()
    while txt != "":
        print(txt)
        txt = f.readline()

4.、readlines() 一次读入,逐步处理

with open(r"G:\Programme\python\file\三国演义.txt",'r') as f:
    txt = f.readlines()
    for line in txt:
        print(line)

5、直接遍历文件对象 分行读入,逐步处理

with open(r"G:\Programme\python\file\三国演义.txt",'r') as f:
    for i in f:
        print(i,end="")

关闭文件

变量.close()

练习

1、把jpg的内容读出来,将一部分读入到另外一个图片中

with open("1.jpg",'rb') as f1:
    content = f1.read()
    
with open("2.jpg",'wb') as f2:
    content2 = content[0:int(len(content)/2)]
    f2.write(content2)

2、将files文件夹下的文件内容复制到另一个文件

with open("./files/三国演义.txt",'rt',encoding='utf-8') as f1:
    with open("./files/三国演义copy.txt",'at',encoding='utf-8') as f2:
        while True:
            content = f1.read(1024) #读1024个汉字
            if content == 0:
                break
            f2.write(content)
分类: Python

评论

-- 评论已关闭 --

目录