文件IO操作,文件路径操作和文件

网友投稿 813 2022-05-28

一. 文件的分类

广义上说文件是按照文件的类型进行分类:

如视频文件、音频文件、图片文件、文档文件等 等各种形式的文件,在这样的分类情况下~很明确使用对应的软件打开对应的文件。

视频文件:视频播放器 音频文件:网易云音乐…

图片文件:画图、照片… 文档文件:word 文档,记事本,wps 软件

表格文件:excel,wps 表格软件

狭义上的文件是按照组成文件的数据格式分类:

文本文件:数据是按照字符组成的文件,使用记事本可以正常打开

二进制文件:数据是按照字节组成的文件,使用记事本打开会出现乱码 图片文件、音频文件、视频文件、word 文档

文本的世界是字符串的世界,和编码有关  二进制的世界是字节的世界,和编码无关

编程文件操作是逻辑位置的操作   物理位置操作是操作系统处理的

二.文件IO操作

open()      # 打开文件

f = open('test.txt', 'r')

打印f:

<_io.TextIOWrapper name='1.py' mode='r' encoding='cp936'>

文本IO包装器 mode只读 编码cp936对应GBK

打开文件,会占用当前应用程序进程一个描述符文件(描述符 0 1 2 标准输入 标准输出 标准错误输出)

主mode: r:只读(默认,本质是rt) 指针在头部 w:写 指针在头部(没有文件创建文件) a:写 指针在尾部(没有文件创建文件) x: 写模式,新建一个文件,如果该文件已存在则会报错。 副mode t:文本模式 (默认) b: 二进制模式 +: 打开一个文件进行更新(可读可写)。

read()            #  读取文件多少个字节

# test.txt: # aa # 123 f = open('test.txt', 'r') # 读全部 f.read() # aa # 123 f = open('test.txt', 'r') f.read(1) # a f = open('test.txt', 'r') f.read(3) # aa(换行符也是一个字符) f = open('test.txt', 'r') f.read(1) # a f.read(3) # 此时指针在第二个字节 # a # # 1

readline()      #  从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。

readlines()    #  读取所有行(直到结束符 EOF)并返回列表

write()           #  写入缓冲区

flush()           #  写入磁盘

close()          #  缓冲区有数据未写入磁盘,会flush; 归还文件描述符

readable()    #  是否可读,bool

writable()     #  是否可写,bool

closed()       #  是否关闭,bool

seek()         #  指定指针位置,导致flush

tell()           #   会动下指针,导致flush

with上下文管理 无论是否执行异常,自动执行close()方法

with open('test.txt', 'r+', encoding="utf-8") as f: for line in f.readlines(): print(line)

3.os.path模块

os.getcwd()                    返回当前的工作目录

文件IO操作,文件路径操作和文件

os.chdir()                        修改当前的工作目录

os.chmod()                      修改文件的访问权限。

os.system()                      执行系统命令

os.unlink()

os.remove()

os.mkdir()

os.rmdir()                              删除路径指定的空文件夹

os.listdir()

os.path.abspath(path)           返回绝对路径

os.path.dirname(path)            返回文件路径

os.path.basename(path)        返回文件名

os.path.getsize(path)              返回文件大小,如果文件不存在就返回错误

os.path.exists(path)                  路径存在则返回True,路径损坏返回False

os.path.isfile(path)                    判断路径是否为文件

os.path.isdir(path)                      判断路径是否为目录

4.shutil模块

move()

# 功能:移动文件或者文件夹

# 格式:shutil.move(来源地址,目标地址)

# 返回值:目标地址

如果目标路径指向的文件夹中已经存在了同名文件,那么该文件将被重写;如果目标路径指向一个具体的文件,那么指定的文件在移动后将被重命名。

注意:目标路径下的文件夹必须是已经存在的,否则程序会返回错误。

copy()

# 功能:复制文件

# 格式:shutil.copy('来源文件','目标地址')

# 返回值:复制之后的路径

copy2()

# 功能:复制文件,保留元数据

# 格式:shutil.copy2('来源文件','目标地址')

# 返回值:复制之后的路径

copyfileobj()

# 将一个文件的内容拷贝的另外一个文件当中

# 格式:shutil.copyfileobj(open(来源文件,'r'),open('目标文件','w'))

# 返回值:无

copyfile()

# 功能:将一个文件的内容拷贝的另外一个文件当中

# 格式:shutil.copyfile(来源文件,目标文件)

# 返回值:目标文件的路径

copytree()

# 功能:复制整个文件目录

# 格式:shutil.copytree(来源目录,目标目录)

# 返回值:目标目录的路径

# 注意:无论文件夹是否为空,均可以复制,而且会复制文件夹中的所有内容

copymode()

# 功能:拷贝权限

copystat()

# 功能:拷贝元数据(状态)

rmtree()

# 功能:移除整个目录,无论是否空

# 格式:shutil.rmtree(目录路径)

# 返回值:无

which()

# 功能:检测命令对应的文件路径

# 格式:shutil.which(‘命令字符串’)

# 返回值:命令文件所在位置

# 注意:window和linux不太一样。 window的命令都是.exe结尾,linux则不是

disk_usage()

# 功能:检测磁盘使用信息

# 格式:disk_usage(‘盘符’)

# 返回值:元组

# 归档和解包操作

# 归档:将多个文件合并到一个文件当中,这种操作方式就是归档。

# 解包:将归档的文件进行释放。

# 压缩:压缩时将多个文件进行有损或者无损的合并到一个文件当中。

# 解压缩:就是压缩的反向操作,将压缩文件中的多个文件,释放出来。

# 注意:压缩属于归档!

make_archive()

# 功能:归档函数,归档操作

# 格式:shutil.make_archive('目标文件路径','归档文件后缀','需要归档的目录')

# 返回值:归档文件的最终路径

unpack_archive()

# 功能:解包操作

# 格式:shutil.unpack_archive('归档文件路径','解包目标文件夹')

# 返回值:None

# 注意:文件夹不存在会新建文件夹

get_archive_formats()

# 功能:获取当前系统已注册的归档文件格式(后缀)

# 格式:shutil.get_archive_formats()

# 返回值:列表   [(后缀,解释),(后缀,解释),(后缀,解释)...]

get_unpack_formats()

# 功能:获取当前系统已经注册的解包文件格式(后缀)

# 格式:shutil.get_unpack_formats()

# 返回值:列表   [(后缀,解释),(后缀,解释),(后缀,解释)...]

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Java开源数据库语言】基于SPL如何提高SQL优化效率
下一篇:aix 安装oracle11RAC
相关文章