* 代表乘法,向量对应位置相乘 ** 代表乘方 eg. 2 ** 5=32 / 除法 // 除法后取整
很多时候涉及到对文件夹下所有文件的操作,如何拿到所有的文件名,得到所有的文件路径,是首要解决的问题。 以及在程序内对文件夹进行新建/删除 两种常用方法
import os, shutil 创建文件夹 import os os.mkdir('dir1') os.mkdir('dir1/dir3') # 一次只能生成一个文件夹 删除文件夹 # 1.删除单个空文件夹 os.rmdir('d1/d2') # 2.删除多个非空文件夹,d2空则删除,并递归到上一级,若也为空则d1也被删除 os.removedirs('d1/d2') # 3.删除文件夹中文件 os.remove('d1/a.txt') # 似乎只能先一个个循环移除文件,然后删除空文件夹 # 另一种删除的方式,删除该文件夹里所有 import shutil # 该库中还有很多实用函数,不一一介绍 shutil.rmtree('d1') 重命名文件夹 import os import shutil # os.rename("old_name", "newname") os.rename('d1/a.txt', 'd1/b.txt') shutil.move('d1/a.txt', 'd1/b.txt') 列出指定目录下的所有文件和子目录名称,以list格式打印 给出该目录下的文件和子目录名称 import os path = os.listdir('d1') print(path) 若还想递归子目录中的所有文件 import os path = 'd1' for dirpath, dirname, filenames in os.walk(path): print(dirpath, dirname, filenames)其中dirpath为目录的路径,dirname为该目录下子目录的名称,filenames为该目录下的所有文件名称。
获得一个路径下所有的文件路径名称: import os path = 'd1' for dirpath, dirname, filenames in os.walk(path): for filename in filenames: print(os.path.join(dirpath,filename)) 给出文件所在的绝对路径 import os abspath = os.path.abspath('d1') print(abspath) 获取当前工作目录,改变工作目录 import os os.getcwd() os.chdir('d1') # 相当于cd d1 多个文件路径组合 import os path = os.listdir('d1') [os.path.join('d1/', path[i]) for i in range(len(path))] # ['d1/b.txt', 'd1/d2', 'd1/新建 Microsoft Excel 工作表.xlsx'] import glob 在path路径下,查找与匹配规则匹配的所有文件 def findFiles(path): return glob.glob(path) path = findFiles('Data/Test/*.npy') # 找到给定路径下,后缀名为.npy的所有文件,返回为Data/Test/*.npy形式匹配规则:
* : 匹配所所有 ? : 匹配一个字符 *.* : 匹配如:[hello.txt,cat.xls,xxx234s.doc] ?.* : 匹配如:[1.txt,h.py] ?.gif: 匹配如:[x.gif,2.gif] 如果没有匹配的,glob.glob(path)将返回一个空的list:[]