网站首页 > java教程 正文
文件基本操作
在 Python 中,内置了文件(File)对象,在操作文件之间,需要使用 open() 函数打开或创建一个文件,
file = open(fileName, mode, buffering)
file 表示被创建的文件对象;fileName 表示要打开或创建的文件名;mode 表示文件的打开模式;buffering 表示读写文件的缓存模式。
其中,mode 的参数如下:
打开文件并对其操作完毕后,要及时关闭该文件,以免造成不必要的损坏。可以使用 close() 函数将文件关闭,
file.close()
为了避免忘记关闭文件而对文件造成不必要的损坏,可以使用 with 关键字,该语句可以实现在处理文件时,无论是否出现错误,都保证 with 语句结束后关闭文件。
with expression as target: pass
expression 是一个表达式,例如使用 open() 函数打开一个文件;target 用于存放 expression 的结果。
当需要向打开的文件中写入内容时,可以使用 write() 函数,
file.write()
当使用 write() 函数向文件中写入内容后,只有在使用 close() 函数关闭文件时,才会将写入的内容保存;如果不想立即关闭文件,可以使用 flush() 函数保存写入的内容,
file.flush()
如果要读取文件的内容,可以使用 read() 函数,
file.read(size)
size 表示要读取的字符的个数,省略则表示读取全部字符。
read() 函数是从头开始读的,如果想要从指定位置开始,则可以使用 seek() 函数移动光标到指定位置,
file.seek(offset, whence)
其中,offset 表示光标移动的字符个数;whence 指定字符个数从哪个位置开始计算:0 表示从头开始;1 表示从当前位置开始;2 表示从结尾开始,默认为 0。
可以使用 readline() 函数一行行读取,
file.readline()
也可以使用 readlines() 函数读取全部行,
file.readlines()
该函数返回一个字符串列表,每个元素为文件的一行内容。
高级操作
shutil 模块
shutil 模块可以复制、移动、重命名和删除目录或文件。
shutil.copy(source, destination)
该函数可以将 source 路径下的文件,复制到 destination 路径的目录下,如果目标目录中已存在同名文件,则直接替换;如果 destination 路径中包含文件名,则将被复制的文件重命名为此名称。
如果想要将目录及其中的子目录和文件,全部复制到一个新的目录中,可以使用
shutil.copytree(source, destination)
注意,destination 路径下不能包含和 source 路径中目标文件夹的同名目录,否则系统会抛出异常。
如果需要移动目录(包括其中的子目录和文件)或文件,可以使用
shutil.move(source, destination)
如果目标文件夹中已经包含同名目录或者文件,则会抛出异常。
os 模块中的 rmdir() 和 removedirs() 都只能删除一个非空的目录,如果想删除一个目录及其中的子目录和文件,可以使用,
shutil.rmtree(path)
该函数可以删除指定的目录及其中所有内容(子目录及文件)。
send2trash 模块
使用 shutil 模块中的函数删除目录即文件是不可恢复的,为了保险起见,可以使用第三方库 send2trash 中的函数做删除动作,它不会完全删除目录或文件,而是将它们放入回收站中,以供反悔。因为它是一个第三方模块,所以使用之前需要使用 pip 工具安装它,并使用 import 语句导入。
send2trash.send2trash(path)
zipfile 模块
读取 .zip 文件
该模块可以将多个目录或文件做成一个 ZIP 压缩包,当然也可以解压压缩包。
和 File 文件对象一样,要读取 ZIP 文件的内容,首先需要创建一个 ZipFile 对象,
zipfile.ZipFile(path)
该函数返回一个 ZipFile 对象;path 表示一个 .zip 格式的压缩包。
然后,可以使用 namelist() 函数获取压缩包中的文件列表,
ZipFile.namelist()
该函数返回一个以压缩包中的文件名作为元素的列表。
可以使用 getinfo() 函数获取文件列表中文件的信息,
ZipFile.getinfo(ZipFile.namelist()[index])
该函数需要一个压缩包中的文件作为参数,返回一个 ZipInfo 对象,该对象具有许多可以获取文件信息的属性,如 filename、date_time、file_size 等。
解压 .zip 文件
通过 ZipFile 对象的 extractall() 方法可以对压缩包进行解压,
ZipFile.extractall(path)
path 可选参数,用于指定解压后的存放路径;如果不指定,则解压中当前路径下。
创建 .zip 压缩包
创建压缩包,首先需要使用 ZipFile() 方法新建一个空的压缩包,然后使用 write() 方法将文件添加到压缩包中,
zipfile.ZipFile(name, mode).write(fileName, compress_type=zipfile.ZIP_DEFLATED)
name 用于指定压缩包的名称;mode 用于指定压缩包的打开模式;fileName 用于指定要放入压缩包中的文件;compress_type 用于指定压缩算法,一般都是 ZIP_DEFLATED,该算法都大部分类型的文件都有效。
其中,mode 的值可以参考文件基本操作中的值。
◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆
为了帮各位观众老爷们快速入门python,我在这里准备了一套“经典入门教程”,这些是入门付费教程哦,现在当做福利免费赠送给各位观众老爷们,私信我“python入门”就可以领取!
点击我的头像关注我进入主页,就能看到私信按钮了。私信我“python入门”,一个字不能多一个字不能少,即可快速领取!
猜你喜欢
- 2024-11-07 HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期
- 2024-11-07 一次生产事故,动态磁盘删除卷分区丢失,数据恢复案例实战
- 2024-11-07 【每日一学】Java CRUD操作大揭秘:学会创建、读取、更新和删除
- 2024-11-07 java实现对zip文件的压缩(java实现zip解压缩)
- 2024-11-07 一个骚命令防止你的文件被误删除(一个骚命令防止你的文件被误删除了怎么办)
- 2024-11-07 深入理解Java内存与垃圾回收调优(java内存机制和垃圾回收算法)
- 2024-11-07 Java之路-File类(java file类)
- 2024-11-07 Java使用aspose删除pdf中不需要的图片
- 2024-11-07 把Python程序用jython编译为java的jar包,几行代码
- 2024-11-07 java File类用法(java中的file是什么)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)