关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

Python中文件和路径的操作总结

发布时间:2022-09-11 23:37:24

文件操作

文件IO常用操作

open          打开操作

read          读取操作

write         写入操作

close         关闭操作

readline      行读取操作

readlines     多行读取操作

seek          文件指针操作

tell   指针位置



文件访问有两种模式,文本模式和二进制模式,不同模式下,操作函数不尽相同,表现的结果也不一样。文件操作做常用的就是读和写。

文件打开操作:

open (file ,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None) 作用:打开一个文件,返回一个文件对象流和文件描述符

file  打开或者要创建的文件名,如果不指定路径,默认是当前路径

mode模式:

r 缺省的,表示只读打开 ,如果使用write方法,会抛出异常,如果文件不存在,抛出FileNotFountError异常

w 只写打开,如果读取则抛出异常,如果文件不存在,则直接创建文件,如果文件存在,则清空文件内容

x 创建并写入一个新文件,文件不存在,创建文件,并只写方式打开,如果文件存在,则抛出FileExistsError异常

a 写入打开,如果文件存在,则追加

b 二进制模式 

t 缺省的,文本模式

+ 读写打开一个文件。给原来只读,只写方式提过缺省的读或着写能力


文件指针

文件指针,指向当前字节位置

mode = r ,指针起始在0 mode =a ,指针起始在EOF

tell()显示指针当前位置

seek(offset[,whence])移动文件指针位置,offest偏移多少字节,whence从哪里开始。

文本模式下whence 0 缺省值,表示从头开始,offest只能正整数 。whence 1 表示从当前位置,offest只接受0 ,whence 2表示从EOF开始,offest只接受0

二进制模式下whence 0 缺省值,表示从头开始,offest只能正整数。 whence 1 表示从当前位置,offest可正可负 ,whence 2表示从EOF开始,offest可正可负


buffering              说明

buffering = -1          t和b,都是io.DEFAULT_BUFFER_SIZE

buffering = 0 b关闭缓冲区   t不支持

buffering = 1 b就一个字节   t行缓冲,遇到黄行符才flush

buffering > 1           b模式表示缓冲区大大小。缓存区的可以超过io.DEFAULT_BUFFER_SIZE,直到设定的值超出后才吧缓冲区flush

t模式,是io.DEFAULT_BUFFER_SIZE字节,flush完后把当前字符串也写入磁盘

encoding:编码,仅在文本模式使用 None表示使用缺省编码,依赖操作系统


errors 什么样的编码错误将被捕获None和strict表示有编码错误将抛出ValueError异常,ignore表示忽略


newline 文本模式中,换行转换,可以为None、‘空串’,‘\n’,'\r\n','\r'


closefd 关闭文件描述符,Ture表示关闭他,False会在文件关闭后保持这个描述符。



文件的读、写、关闭操作

read(size=-1) size表示读取的字符或者字节。负数或者None表示读到EOF

readline(size=-1) 一行行的读取

readlines(dize=-1)  读取指定的行数


write(s) 把字符串S写入到文件中并返回字符的个数

writelines(s)  价格字符串列表写入文件。


close

flush 关闭文件对象,再次关闭没有任何效果



文件的上下文管理

上下文管理:

语法:

1:使用with....as关键字

2:上下文管理的语句块并不会开启新的作用域

3:with语句块执行完的时候,会自动关闭文件对象


with语句的写法:


with open(路径名) as f:

f.write(‘字符串’)

file = pen(路径名)

with file:

f.write(‘字符串’)

文件的路径操作之pathlib模块


导入pathlib模块

初始化:

P = Path


目录操作

路径的拼接和分解

操作符/

P /字符串 或者   字符串/P


分解

parts属性可以返回路径中的每一部分


joinpath

join path(*other)连接多个字符串到Path对象中


获取路径

str 获取路径字符串

bytes 获取路径字符串bytes


父目录

parent目录的逻辑父目录

parents 父目录序列,索引0是直接的父


目录组成部分

name  目录的最后一个部分

suffix 目录中最后一个部分的扩展名

stem  目录最后一个部分,没有后缀

suffixes 返回多个扩展名列表

with_suffixes(suffix) 有扩展名则替换,无则补充扩展名

with_name(name)替换目录最后一个部分并返回一个新的路径


全局方法

cwd()  返回当前工作目录

home()  返回当前家目录


方法

is_dir()             是否是目录,存在返回True

is_file()            是否是普通文件,文件存在返回Ture

is_symlink()         是否是软连接

is_socket            是否是socket

is_block_device()    是否是块设备

is_char_device() 是否是字符设备

id_absolute()        是否是绝对路径

resolve()            返回一个新的路径

absolute()           获取绝对路径

exists()             目录或者文件是否存在

rmdir()               删除空目录,没有提供判断目录为空的方法

touch(mode=0o666,exist_ok=Ture)   创建一个文件

as_uri()将路径返回成URL,例如‘file:///etc/passwd’

mkdir(mode=0O777,parents=False,exist_ok=False)

parents,是否创建符目录,True等同于mkdir-p;Flase时,父目录不存在,则抛出FileNotFoundError

exist_ok参数,在3.5版本加入。False时,路径存在,抛出FileExistsError;Ture时,FileExitsError被忽略

itemdir() 迭代当前目录



通配符:

glob(pattern)通配给定的模式

rglob(pattern)通配给定的模式,递归目录

都返回一个生成器


配置

match(pattern)

模式匹配,成功返回Ture


stat()相当于stat命令

lstat同stat(),但如果时符号链接,则显示符号链接本身的文件信息


另外有需要云服务器可以了解下风纳云fengnayun.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


/template/Home/Dawn/PC/Static

选择风纳云,也许是您成就一番大事业的开端

注册账号