python学习笔记13——文件

使用python控制文件一般分为3步:1.打开,2.对文件进行操作,3.关闭。

f = open('/tmp/passwd')		##打开文件
print(f.read())				##读文件
f.close()					##关闭文件

文件的读写操作

在打开文件的同时,可以指定对文件的操作权限,如

f = open('/tmp/passwd','r')	

这样的操作表示对文件进行操作时只能读,不能写,这样的操作权限还有很多,如下:

权限作用
r只能读,不能写,读取的文件不存在时会报错
r+可以执行读写操作,文件不存在时会报错,默认情况下,从文件指针所在位置开始写入
w只能写,不能读,写文件的时候会清空文件之前的内容,文件不存在时不会报错,会创建一个新的文件并写入
w+可以执行读写操作,写文件的时候会清空文件之前的内容,文件不存在时不会报错,会创建一个新的文件 并写入
a只能读,不能写,写文件的时候不会清空文件之前的内容,在文件的末尾追加内容,文件不存在时会报错
a+可以执行读写操作,写文件的时候不会清空文件之前的内容,在文件的末尾追加内容,文件不存在时会报错

对文件进行操作时,文件指针会发生变化。
查看当前文件指针的位置:

print(f.tell())

文件的读取
.read():读取文件的全部内容
在这里插入图片描述
在括号内加入数字可以按字节读取:
在这里插入图片描述

.readlines():读取文件内容,返回一个列表,列表的元素分别为文件
行内容
在这里插入图片描述
.readline():时用readline()时,不会返回列表,而是返回文件第一行的内容作为一个元素。
默认情况下读取文件的所有内容,小文件可以直接用read读取,如果是大文件(文件大小>内存大小),不能通过read一次性读取所有内容。
文件的写入
.write():写入文件直接在括号内写入需要写入的内容。

在这里插入图片描述
将hello world写入文件。
.writelines():写入文件时将列表中的每个元素写入文件,如
在这里插入图片描述
将ab写入文件。
如何移动文件指针
写入文件之后文件指针会发生变化,如果想要读取文件内容的话则需要移动文件指针。

seek方法,移动指针
    seek的第一个参数是偏移量:>0,表示向右移动,<0表示向左移动
    seek的第二个参数是:
        0:移动指针到文件开头
        1:不移动指针
        2:移动指针到末尾

在这里插入图片描述
把指针移动到文件开头,之后再读取文件。

对非纯文本的文件
对非文本的文件进行操作时,需要再使用权限上加个b如rb,wb+等。
在这里插入图片描述
上下文管理器
使用上写文可以同时对两个文件进行操作,下面用f1代表文件1,f1代表文件2。
在这里插入图片描述
打开两个文件并进行读取。

文件与系统

import os
from os.path import exists,splitext,join

首先要导入这些需要的模块。
1.返回操作系统类型

print(os.name)

在这里插入图片描述
posix表示linux操作系统。
2.操作系统的详细信息
在这里插入图片描述
3.系统环境变量

print(os.environ)

在这里插入图片描述
查看系统环境变量返回的是一个字典。
4.判断文件是否为绝对路径

os.path.isabs('/tmp/passwd')

在这里插入图片描述
如果是绝对路径返回一个True值,否则返回False,需要注意的是,这里只是判断文件的路径是否为绝对路径,不能判断文件是否存在。
5.生成绝对路径

os.path.join('/home','hello.jpg')

在这里插入图片描述
使用这个方法可以将二者连接起来。
6.获取目录名或文件名

os.path.basename(filename)

获取文件名

os.path.dirname(filename)

获取目录名
在这里插入图片描述
6.创建目录/删除目录

os.mkdir('img')

创建目录img

os.makedirs('img/jpg/png')

创建递归目录

os.rmdir('img')

删除目录img
7.文件的创建,删除,重命名

os.mknod('file1')

创建文件file1

os.remove('file1')

删除文件file1

os.rename('file1','file2')

将file1重命名为file2
8.判断文件或者目录是否存在

os.path.exists('file1')

在这里插入图片描述
文件不存在会返回一个False。
9.分离后缀名和文件名

os.path.splitext('hello.png')

在这里插入图片描述
10.将目录名和文件名分离

os.path.split('/tmp/test/hello.jpg')

在这里插入图片描述
将目录和文件名分离,返回的是一个元组。
11.遍历目录
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值