大家好,我是陈诚~近年来,随着Python的热度持续走高,人们逐渐使用这门编程语言来进行一些自动化操作,以节省重复劳动带来的低效率,所以肯定会涉及到对文件系统的操作,包括增、删、改、查等,今天就来介绍一下如何使用Python来实现这些功能。01输出当前路径我们可以使用Python中的OS库获取当前文件的位置importosos.getcwd()的位置02路径拼接我们使用os.path.join()方法来实现os.path。join('output','Book1.xlsx')outputoutput\Book1.xlsx03确认文件夹或文件是否存在。我们先看看如何确认文件夹的存在。通过OS模块os.path.exists('directory_name')也是同样的道理。当我们检查一个文件是否存在时,我们可以这样做os.path.exists('path/file_name')04创建一个文件夹目录然后我们看看如何创建一个新的文件夹os.mkdir("文件夹名")当然,如果文件夹目录事先已经存在,上面的代码自然会报错,所以我们通常先检查是否已经存在如果不存在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”目录文件夹下,代码如下importshutilforfileinlist(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删除file让我们看看如何删除文件?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'))存在于目录下folder文件不是空目录文件夹,我们还是要用到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')))withzipfile.ZipFile(r"我创建的压缩文件.zip","w")aszipobj:forfileinfile_lists:zipobj.write(file)通过zipfile模块中的namelist()方法读取压缩包中的文件信息withzipfile.ZipFile("我创建的压缩包.zip","r")aszipobj:print(zipobj.namelist())output['Book1.xlsx','supermarkt_sales.xlsx']可以看到输出的是我们上次打包的几个excel文件。解压压缩包中的各个文件,并通过zipfile模块中的extract()方法实现dst="output"withzipfile.ZipFile("我创建的压缩包.zip","r")aszipobj:zipobj.extract("Book1.xlsx",dst)上面代码的目的是将压缩包中的"Book1.xlsx"文件解压到"output"目录文件夹中,并通过extractall()解压压缩包中的所有文件zipfile模块中的方法。代码如下dst="output"withzipfile.ZipFile("ThecompressedpackageIcreated.zip","r")aszipobj:zipobj.extractall(dst)以上就是我今天分享的,希望对大家有所帮助对你有帮助!喜欢此内容的朋友,请点赞关注!您的肯定是我前进的动力!
