python 学习笔记十七 文件

文件(file)

  • 文件有些地方也称为I/O
  • 操作文件的步骤
    1. 打开文件
    2. 对文件进行操作,保存操作
    3. 关闭文件

打开文件

文件分为两种,一种是纯文本文件(使用utf-8等编码编写的文本文件),一种是二进制文件(mp3,ppt,图片)

  • 新建一个文本文件
    在这里插入图片描述
open()

open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

open函数打开文件默认是无编码的文本文件
参数

file 需要打开的文件路径和名字

  • 如果目标文件和当前文件在同一级目录下,直接使用文件名即可
  • 在windows中使用路径时,可以用/代替\,或者用\代替\,或者使用原始字符串
    在字符串前加r;
file_path=r'.\mldata\tets.txt'
  • 两个小数点表示上一级目录,三个表示上一级的上一级

返回值

返回一个对象,代表当前打开的文件

关闭文件

  • 调用close()方法来关闭文件
close()

在这里插入图片描述

with … as 语句

with open(file) as file_obj:
  pass

作用

在with 语句中可以使用file_obj来对文件操作,同时只能在with中使用,with语句结束了文件自动关闭
在这里插入图片描述
在这里插入图片描述

文件的读取

  • 通过read()来读取文件的内容
read()
  • 读取出文件中所有内容
    在这里插入图片描述
  • 对于较大文件不能直接使用read(),read()可以用一个size作为参数,该参数可以指定要读取字符的数量,默认值为-1会读取文件的所有字符;
    在这里插入图片描述
    调用多次read(size)时,后面的后从前面的结尾处继续
    在这里插入图片描述
    在这里插入图片描述
    如果已经读取完了,再调用read()会返回""空串
    在这里插入图片描述
readline()

读取文件内容的一行,每次输出会自带/n换行
在这里插入图片描述

readlines()

一行一行读取文件内容,并将其内容存到列表中返回
在这里插入图片描述
可以通过索引访问列表中元素
在这里插入图片描述

for循环

for循环也会一行一行输出文件内容
在这里插入图片描述

文件写入

  • 用write()来向文件写入内容,如果操作的是文本文件,则write()需要传递一个字符串作为参数,使用write()时,需要open()函数是可写的才行
    在这里插入图片描述
  • 使用open()打开文件时,需指定打开文件要做的操作(读,写,追加),不指定则只能执行读操作
    • r 表示只读的
    • w表示可写的,使用w文件不存在会创建文件,文件存在则原文件会被覆盖,原内容不复存在
    • a表示追加,文件不存在则创建,文件存在则追加到原内容后
    • r+既可读也可写,文件不存在会报错
    • w+既可读也可写
    • a+即可追加也可读
write()

write()写入完成后,返回写入的字符数
在这里插入图片描述
在这里插入图片描述

二进制文件

除文本文件以外的文件都叫二进制文件

  • 读取二进制文件时需要再read()里传递‘b’,read()里的size是以字节单位
    在这里插入图片描述

tell()

查看当前读取到的位置
在这里插入图片描述

seek()

可以修改当前读取的位置

参数

  • 第一个 要切换到的位置
  • 第二个 计算位置方式
    • 0 从头计算 默认值
    • 1 从当前位置开始计算
    • 2 从最后位置开始计算
      在这里插入图片描述

os.listdir()

获取指定目录下的目录结构
在这里插入图片描述

os.getcwd()

获取当前目录
在这里插入图片描述

os.chdir()

切换目录相当于cd

os.mkdir

创建目录一个名为‘python’的目录
os.mkdir(‘python’)

os.rmdir

删除名为‘python’的目录
os.rmdir(‘python’)

os.remove

删除文件a.py
os.remove(‘a.py’)

os.rename

  • 将文件a.txt重命名为b.txt
    os.rename(‘a.txt’,‘b.txt’)
  • 剪切,将当前目录下的a.txt剪切到c/user下
    os.rename(‘a.txt’,‘c/user/a.txt’)
发布了85 篇原创文章 · 获赞 158 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/Late_whale/article/details/104211546