如果你的程序在删除文件时突然崩溃,数据会丢失吗?如果多个程序同时想修改同一个文件,会发生“冲突”吗?Python如何优雅地处理这些潜在风险?
在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下:
第一步:导入os模块
第二步:调用os模块中的相关方法
把Python项目目录下的python.txt文件,更名为linux.txt,休眠20s,刷新后,查看效果,然后对这个文件进行删除操作。
# 第一步:导入os模块import os# 第三步:引入time模块import time# 第二步,使用os.rename方法对python.txt进行重命名os.rename('python.txt', 'linux.txt')# 第四步:休眠20stime.sleep(20)# 第五步:删除文件(linux.txt)os.remove('linux.txt')
前提
相关方法:
| | |
| | |
| | current work directory,获取当前目录名称 |
| | |
| | |
| | |
# 导入模块import os# 1、使用mkdir方法创建一个image文件夹os.mkdir('images')os.mkdir('images/avatar')# 2、getcwd = get current work directoryprint(os.getcwd())# 3、os.chdir,ch = change dir =directory切换目录os.chdir('images/avatar')print(os.getcwd())# 切换到上一级目录 => imagesos chdir('../')print(os.getcwd())# 4、使用os.listdir打印当前所在目录下的所有文件,返回列表print(os.listdir())# 5、删除空目录os.rmdir('images/avatar')
准备一个static文件夹以及file1.txt、file2.txt、file3.txt三个文件:
① 在程序中,将当前目录切换到static文件夹
② 创建一个新images文件夹以及test文件夹
③ 获取目录下的所有文件
④ 移除test文件夹
# 导入os模块import os# 1、在程序中,将当前目录切换到static文件夹os.chdir('static')# print(os.getcwd())# 2、创建一个新images文件夹以及test文件夹os.mkdir('images')os.mkdir('test')# 3、获取目录下的所有文件# print(os.listdir())for file in os.listdir(): print(file)# 4、移除test文件夹os.mkdir('test')
# 导入shutil模块import shutil# 递归删除非空目录shutil.rmtree('要删除文件夹路径')
递归删除文件夹的原理:理论上,其在删除过程中,如果文件夹非空,则自动切换到文件夹的内部,然后把其内部的文件,一个一个删除,当所有文件删除完毕后,返回到上一级目录,删除文件夹本身。
D:\PycharmProjects\pythonProject\static
相对路径:
① 同级路径,都在同一个文件夹中,兄弟关系,如static目录下有file1.txt和file2.txt,则file1.txt和file2.txt就是同级关系,同级访问直接使用名称即可。
② 下一级路径,我们的文件与另外一个文件存在上下级关系,如images文件夹中存在一个avatar文件夹,则images是上级目录,avatar是下级目录。则我们访问avatar可以通过images/avatar来实现。
③ 上一级路径,如果我们某些时候,向从当前目录下,跳出到外一层路径,我们可以使用 ../ 来实现。
今日学习完毕,课后作业:
需求:批量修改文件名,既可添加指定字符串,又能删除指定字符串。
步骤:
① 设置添加删除字符串的的标识;
② 获取指定目录的所有文件;
③ 将原有文件名添加/删除指定字符串,构造新名字;
④ os.rename()重命名。