Hello,大家好,我是陈程~

近几年随着Python的热度一直上涨,人们慢慢应用这门编程语言来进行一些自动化操作,以节俭重复劳动带来的效率低下,那么必定会波及到对文件系统的操作,包含文件的增、删、改、查等等,明天小编就来介绍一下如何用Python来实现这些性能

01 输入以后的门路

咱们能够通过Python当中的OS库来获取以后文件所在的地位

import osos.getcwd()

02 门路的拼接

咱们通过os.path.join() 办法来实现

os.path.join('output', 'Book1.xlsx')

output

output\Book1.xlsx

03 确认某文件夹或者是文件是否存在

咱们先来看如何来确认文件夹是否存在,同样也是通过OS模块

os.path.exists('directory_name')

同样的情理,当咱们查看一下某个文件是否存在的时候,能够这么做

os.path.exists('path/file_name')

04 建设文件夹目录

而后咱们来看一下如何新建一个文件夹

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'))

05 列举出当前目录下所蕴含的所有文件

代码如下

os.listdir('文件夹名称')

然而有时候咱们可能想例如搜查一下当前目录下的所有文件中以“py”结尾的文件,咱们能够通过通配符来实现,代码如下

list(glob(os.path.join('.', '*.py')))

下面提到的glob模块可能疾速查找咱们想要的目录和文件,它反对 * 、 ?[] 这四个通配符

06 挪动文件

要是咱们想在不同的目录文件夹之下挪动文件,该怎么操作呢?这里咱们介绍Python当中的shutil模块,假如咱们想要将当前目录下的几个csv文件挪动到“test_dir”目录文件夹之下,代码如下

import shutilfor file in list(glob(os.path.join('.', '*.csv'))):    shutil.move(file, 'test_dir')

07 复制文件

当咱们想要复制文件的时候,也能够应用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'))

08 删除文件

咱们来看一下删除文件该如何实现?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"))

09 创立和解压 压缩包

谈及到操作压缩包相干的内容,就不得不说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 = "output"with zipfile.ZipFile("我创立的压缩包.zip", "r") as zipobj:    zipobj.extract("Book1.xlsx",dst)

上述代码的用意就是将压缩包当中的“Book1.xlsx”文件解压至“output”目录文件夹下

  • 将压缩包中的所有文件,都解压进去

通过zipfile模块当中的extractall() 办法来实现,代码如下

dst = "output"with zipfile.ZipFile("我创立的压缩包.zip", "r") as zipobj:    zipobj.extractall(dst)

以上,就是我明天分享的内容,心愿对你有所帮忙!

喜爱这篇内容的小伙伴们,就点个赞和关注!你们的必定是我后退的一个能源!