近几年随着python的热度不断上涨,人们渐渐使用这门编程语言来进行一些自动化操作,以节省重复劳动带来的效率低下,那么必定会涉及到对 文件系统的操作 ,包括文件的增、删、改、查等等,今天小编就来介绍一下如何用python来实现这些功能
输出当前的路径我们可以通过python当中的os库来获取当前文件所在的位置
import osos.getcwd()路径的拼接我们通过os.path.join()方法来实现
os.path.join('output', 'book1.xlsx')output
outputbook1.xlsx确认某文件夹或者是文件是否存在我们先来看如何来确认文件夹是否存在,同样也是通过os模块
os.path.exists('directory_name')同样的道理,要是我们查看一下某个文件是否存在的时候,可以这么做
os.path.exists('path/file_name')建立文件夹目录然后我们来看一下如何新建一个文件夹
os.mkdir(文件夹名称)当然要是文件夹目录已经提前存在的情况下,上述的代码自然会报错,所以我们通常会先检查一下是否已经存在
if not os.path.exists('文件夹名称'): os.mkdir('文件夹名称')当然我们有时候需要在已建的文件夹下创建子文件夹,例如下图
这个时候要是引用os.mkdir()方法或许会稍显繁琐,这时我们可以通过os.mkdirs()方法来实现
os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))罗列出当前目录下所包含的所有文件代码如下
os.listdir('文件夹名称')但是有时候我们可能想例如搜寻一下当前目录下的所有文件中以“py”结尾的文件,我们可以通过通配符来实现,代码如下
list(glob(os.path.join('.', '*.py')))上面提到的glob模块能够快速查找我们想要的目录和文件,它支持*、**、?、[]这四个通配符
移动文件要是我们想在不同的目录文件夹之下移动文件,该怎么操作呢?这里我们介绍python当中的shutil模块,假设我们想要将当前目录下的几个csv文件移动到“test_dir”目录文件夹之下,代码如下
import shutilfor file in list(glob(os.path.join('.', '*.csv'))): shutil.move(file, 'test_dir')复制文件当我们想要复制文件的时候,也可以使用shutil模块,例如我们想要将几个“test_dir”目录文件夹下的csv文件复制到“output”目录文件夹之下,代码如下
shutil.copy(os.path.join('test_dir', 'data.csv'), 'output')除此之外,我们还能够对粘贴过去的文件重命名,代码如下
shutil.copy(os.path.join('test_dir', 'data.csv'), os.path.join('output', 'data_2.csv'))删除文件我们来看一下删除文件该如何实现?os.remove()方法可以完成删除文件的功能,
os.remove(os.path.join('output', 'data_2.csv'))当我们想要删除一整个目录文件夹的时候,可以使用os.rmdir()方法,当然只仅限于是空的目录文件夹
os.rmdir(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))而对于目录文件夹下存在文件的,并不是空的目录文件夹,我们还是需要用到shutil模块,代码如下
shutil.rmtree(test_delete)或者是
shutil.rmtree(os.path.join(test_delete, test_1_delete))创建和解压压缩包谈及到操作压缩包相关的内容,就不得不说zipobj这个模块了
创建一个压缩包这里我们要用到的是zipfile模块当中的write()方法
file_lists = list(glob(os.path.join('.', '*.xlsx')))with zipfile.zipfile(r我创建的压缩包.zip, w) as zipobj: for file in file_lists: zipobj.write(file)读取压缩包当中的文件信息通过zipfile模块当中的namelist()方法来实现
with zipfile.zipfile(我创建的压缩包.zip, r) as zipobj: print(zipobj.namelist())output
['book1.xlsx', 'supermarkt_sales.xlsx']可以看到输出的就是上次我们打包的几个excel文件
将压缩包当中的单个文件,解压出来通过zipfile模块当中的extract()方法来实现
dst = outputwith zipfile.zipfile(我创建的压缩包.zip, r) as zipobj: zipobj.extract(book1.xlsx,dst)上述代码的用意就是将压缩包当中的“book1.xlsx”文件解压至“output”目录文件夹下
将压缩包中的所有文件,都解压出来通过zipfile模块当中的extractall()方法来实现,代码如下
dst = outputwith zipfile.zipfile(我创建的压缩包.zip, r) as zipobj: zipobj.extractall(dst)
如何双启动64位iOS设备
贺利氏柔性触控显示方案,让触摸屏不再失灵
Surface Pro 7系列配置曝光,使用英特尔第十代酷睿处理器
string命令合集
工业以太网交换技术原理
如何用Python来实现文件系统的操作功能
AMD两款全新锐龙9系4000处理器,有望击败英特尔酷睿i9
可穿戴计算的主要特征及应用
五分钟了解缤智动力总成技术
常见四种单片测控系统的干扰成因及后果
明年一季度SpaceX载人龙飞船执行首次载人飞行任务
siri是这世界上最好的人工智能 siri如何变成人工智能? 如何把siri弄成人工智能
左手放百度音乐离场,右手拥抱网易云音乐,百度这波操作太“妖”
家电企业的造芯之路进行到哪一步了?
OPPO 5g手机什么时候上市?我的观望只为等待它的出现
透明热收缩管与黑色热收缩管的区别
创维科技研发成果受肯定 用电视重新定义智能人居
瑞萨电子株式会社宣布推出两款符合PMBus标准的全数字DC/DC控制器
Alphabet对Fitbit发出收购,谷歌进军可穿戴市场
可喜可贺!安科瑞首个有序充电站正式运营!