文件有两个管家属性:路径和文件名。
路径指明了文件在磁盘的位置,文件名原点的后面部分称为扩展名(后缀),它指明了文件的类型。
一:文件夹操作
Python中os 模块可以处理文件夹
1,当前工作目录
import os
p = os.getcwd()
print(p)
#C:\Users\Administrator\Desktop
2,创建新目录
import os
os.makedirs('C:\\Users\\Administrator\\Desktop\\01\\02')
注:路径中所有必须的文件夹,都会被创建
3,删除目录
import os
os.rmdir('C:\\Users\\Administrator\\Desktop\\01\\02')
注:rmdir()只能删除空文件夹,否则抛出异常
4,列出当前目录内容(文件,文件夹),返回列表
import os
p = os.listdir('C:\\Users\\Administrator\\Desktop')
print(p)
5,修改当前目录
import os
os.chdir('C:\\Users\\Administrator')
print(os.listdir('.'))
注:“ .”代表当前路径
二:查找匹配的文件或者文件夹
使用glob()函数可以查找匹配文件或文件
1 import glob
2 glob.glob('2*') #查找以2开头的文件或者文件夹
3 glob.glob('d????') #查找以d开头的并且全长为5个字符的文件或者文件夹
4 glob.glob('[abcd]*') #查找以其中任意字符开头的文件或者文件夹
5 glob.glob('[!abcd]*') #同上,取反
三:文件的操作
os.path 模块主要用于文件的属性获取,在编程中经常用到
1,获取路径和文件名
import os print(os.path.dirname('C:\\Users\\Administrator\\Desktop')) #C:\Users\Administrator
返回path参数中路径名称字符串
print(os.path.basename('C:\\Users\\Administrator\\Desktop')) #Desktop
返回path参数中的文件名
print(os.path.split('C:\\Users\\Administrator\\Desktop')) #('C:\\Users\\Administrator', 'Desktop')
返回参数的路径名称和文件名 组成的字符串元祖
print('C:\\Users\\Administrator\\Desktop'.split(os.path.sep)) #['C:', 'Users', 'Administrator', 'Desktop']
如想得到路径中每个文件夹的名字,可以使用上面的方法
2,检查路径的有效性
import os
path = 'C:\\Users\\Administrator\\Desktop\\01'
os.path.exists(path) #判断参数中文件或文件夹是否存在
os.path.isfile(path) #判断参数中该文件是否存在
os.path.isdir(path) #判断参数中该文件夹是否存在
注:以上结果存在 返回True ,否则 False
3,查看文件的大小
#例子:统计该文件夹下所有文件的大小
import os
path = 'C:\\Users\\Administrator\\Desktop\\01'
totalsize = 0
for i in os.listdir(path):
totalsize += os.path.getsize(i)
print(totalsize)
返回结果单位为byte(字节)
4,重命名文件
import os
os.rename('C:\\Users\\Administrator\\Desktop\\01\\01.txt','C:\\Users\\Administrator\\Desktop\\01\\02.txt')
5,复制文件和文件名
shutil模块中的函数,可以帮助我们复制,移动,改名,和删除文件夹,可以实现文件的备份
import shutil shutil.copy('C:\\Users\\Administrator\\Desktop\\01\\02.txt','C:\\Users\\Administrator\\Desktop\\01\\03.txt')
上面这个方法可以复制文件
shutil.copytree() 这个方法可以递归复制文件夹
6,文件和文件夹的移动和改名
import shutil shutil.move('C:\\Users\\Administrator\\Desktop\\01\\02.txt','C:\\Users\\Administrator\\Desktop') 单移动
import shutil
shutil.move('C:\\Users\\Administrator\\Desktop\\01\\02.txt','C:\\Users\\Administrator\\Desktop\\03.txt') #移动+改名
注:如果最终移动目录存在重名的文件,则直接覆盖(需谨慎)
7,删除文件和文件夹
os模块和shutil模块都有函数可以删除 文件和 文件夹
os.remove(path)/os.unlink(path) :删除path指定的文件或 文件夹
import os
os.remove('C:\\Users\\Administrator\\Desktop\\02.txt')
解析: os.rmdir(path) 只能删除空文件夹,shutil.rmtree(path) 可以删除整个文件夹,包含所有子文件(需谨慎)