1、输出目录下所有文件及文件夹
1)os.getcwd():获取当前python程序的运行路径
import os
结果如下:
2)路径中斜杠(/)和反斜杠()的说明
3)os.path.join():自动连接路径(不同的操作系统,连接符不同)
"My Project",
结果如下:
4)绝对路径和相对路径
5)os.listdir()与os.isdir()
os.listdir():列出当前程序文件夹下的所有文件和文件夹;
os.scandir():os.listdir()的一种更好的替代方法,返回的是一个迭代器。注意:我们可以采用循环迭代其中的每一个元素,os.scandir()有两个特殊的属性和一个方法,我们在下面的例子中,进行演示。
os.listdir()
os.scandir()
for item in os.scandir():
print(item.name,item.is_dir(),"\n\t",item.path)
结果如下:
其实,os.listdir()或者os.scandir()其实可以传入一个路径,然后获取指定路径下的文件或者文件夹。
"G:\\6Tipdm\\Python集训营_情感分析")
结果如下:
2、遍历、搜索文件及查询文件信息
1)找出文件夹里的文件夹里的“文件”或“文件夹”
① os.walk(路径):传入一个路径,帮助我们将文件夹里的文件夹里的文件夹里的文件都找出来。
for dirpath, dirnames, files
结果如下:
2)搜索、匹配文件名称及文件信息查看
① 方法一:startswith()和endswith()
- 字符串A.startswith(字符串B):字符串A是否以字符串B开头;
- 字符串A.endswith(字符串B):字符串A是否以字符串B结尾;
"abc.txt".startswith(
结果如下:
② 方法二:glob模块
该模块可以采取类似于“正则”的方式,进行文件匹配,用起来很方便。
代码如下:
for i
结果如下:
特别的:glob()方法中还有一个参数recursive = True,能够将所有深层文件夹里面,符合条件的文件给你找出来。
# 注意:一个*和两个*的区别
结果如下:
③ os.scandir()返回的文件都可以利用stat()方法,进行查看
代码如下:
for file
结果如下:
接着,我们获取上述几个常用属性看看。
import time
结果如下:
3、批量创建、复制、移动、删除、重命名文件及文件夹
1)创建文件夹
"新文件夹名称"):创建单层文件夹;
结果如下:
问题:当某个文件夹已经存在的时候,运行此代码,会报错。此时可以添加一个判断条件
"新文件夹名称"))。
结果如下:
2)复制文件及文件夹(shutil模块儿)
- shutil.copy("要复制的文件", "要复制到的位置"):复制文件;
- shutil.copytree("要复制的文件夹", "要复制到的新文件夹的位置"):复制文件夹;
① 复制文件
- shutil.copy("要复制的文件", "要复制到的位置");
操作如下:
import shutil
结果如下:
② 复制文件夹:相当于重命名文件夹
- shutil.copytree("要复制的文件夹", "要复制到的新文件夹的位置");
- 注意:将某个文件夹移动到另外一个文件夹(该文件夹必须是新文件夹),不能是已经存在了的文件夹;
操作如下:
import shutil
结果如下:
3)移动文件或文件夹
- shutil.move("要移动的文件或文件夹","要移动到的位置"):移动文件/文件夹;
- 文件夹或者文件被移动后,原始文件就没有了;
① 移动文件
- shutil.move("要移动的文件","要移动到的位置")
操作如下:
import shutil
结果如下:
② 移动文件夹
- shutil.move("要移动的文件夹","要移动到的位置")
操作如下:
import shutil
结果如下:
4)重命名文件或文件夹
- os.rename("文件/文件夹","新文件名/新文件夹名")
操作如下:
import os
结果如下:
5)删除文件或文件夹
① 删除文件
- os.remove("要删除的文件")
- 注意:这里说的只是删除文件,而不能是文件夹;
操作如下:
import os
结果如下:
② 删除文件夹
- shutil.rmtree("要删除的文件夹")
操作如下:
import shutil
结果如下:
4、创建和解压压缩包
- 注意:这里所说的压缩包,指的是“.zip”格式的压缩包;
1)读取压缩包里的文件
import zipfile
结果如下:
2)读取压缩包里面的文件信息
import zipfile
结果如下:
3)解压压缩包
- extract("压缩包内要解压的文件名","解压到哪个位置"):将压缩包内单个文件解压出来;
- extractall("解压到哪个位置"):将压缩包内所有文件解压出来;
① 解压单个文件
- extract("压缩包内要解压的文件名","解压到哪个位置")
import zipfile
结果如下:
② 解压整个文件
- extractall("解压到哪个位置")
import zipfile
结果如下:
注意:如果你的压缩包中“有密码”,则采用以下方式进行解压。
4)创建压缩包
① 对某些文件,创建压缩包
"a.txt",
结果如下:
② 压缩包已经存在,往其中添加文件
# 往上述压缩包中,再次添加一个新文件“傻子”文件夹,使用“a”
结果如下: