一、创建文件
其实这个不需要考虑,在接下来修改文件的时候,如果文件不存在,会自动创建文件。
二、删除文件
1、删除文件。
对于文件,只需要os.remove('要删除的文件路径')
2、删除空的文件夹
上边的函数对于删除文件夹是不好使的,会提示你:“你没有权限读取这个文件。”对于空的文件夹,你需要用os.rmdir()函数。
3、删除非空的文件夹
对于非空的文件夹,要想用OS模块搞定就有些困难了,但是也不是没有办法,数学里有一种递归思想(把未知的问题转化为已知的问题)在这里就派上用场了:你需要遍历这个文件夹里的文件,先用1方法逐个删除文件后,再用2方法删除这个空的文件夹。
当然,懒惰使人进步,这么复杂的方法,当然没有人用了,这里还有一种更简单的方法:
shutil.rmtree('文件路径')
不过,在使用这个方法之前,需要先导入shutil这个内置包。
import shutil
4、花式删除
os.removedirs('文件路径')。这个方法会递归地删除目录。即如果子目录被成功删除,removedirs()并不会罢手,会继续删除父目录,直到“斩草除根”,如果子目录没有成功删除,将抛出错误。
eg:加假如我们要删除grandfather/father/son这个目录,使用 os.removedirs('grandfather/father/son') 将首先删除 “grandfather/father/son”目录,然后再删除grandfather/father 和 grandfather( 前提是删除之前son是空目录,剩下两个目录里也没有其他文件)。
三、修改文件。
1、修改txt文件
第一步:读取文件。
f = open('文件路径','r+')
其中,参数r+的意思是可以对文件进行读写,另附参数表如下。
r+ | 具有读写属性,从文件头开始写,保留原文件中没有被覆盖的内容 |
w+ | 具有读写属性,写的时候如果文件存在,会被清空,从头开始写。 |
r | 打开只读文件,该文件必须存在 |
w | 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件 |
a(a+) | 以附加的方式打开只写文件。若文件不存在,则建立文件,若文件存在,写入的数据会被加到文件尾。 |
注:上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过Linux会忽略该字符。
第二步:替换文件内容。
for s in f.readlines():#f.readlines存放了文本内容 s = s.replace('a','b')#把a替换成b f.close()#修改完文件记得关闭
修改文件和这个相同,只需要把s.replace改成s.write('写入的内容')即可。
2、对文件(夹)的常用操作
1、移动文件:shutil.move(“旧文件夹”,”新文件夹”)
2、复制文件:shutil.copyfile(“旧文件”,”新文件”) ,其中,oldfile和newfile都只能是文件
3、复制文件夹:shutil.copytree(“旧目录”,”新目录”) #只能是对目录进行操作,且新的目录必须不存在
shutil.copy(“旧目录”,”新文件”) ,其中,旧目录只能是文件夹,newfile可以是文件,也可以是目标目录
4、重命名文件(夹): os.rename(“以前的名字”,”新的名字”)