一、为什么要使用python处理文件
文件处理管理可分为两种,一种是可视化、手动化,学习成本低,处理数量有限。另一种是编程化、自动化,有一定学习成本,可以基于逻辑处理。计算机的常项是对既定规则的发挥,这个发挥作用于"批量"这个层面。
二、相对路径与绝对路径
相对路径:被操作的文件相对你当前运行的程序来说的路径叫相对路径。
绝对路径:文件在计算机绝对的路径或者说位置叫做绝对路径。
三、python处理文件的常用命令
python文件处理的三个常用库:
import os #查、改
import shutil #复制、剪切
import zipfile #打包、压缩
os的常用方法,path路径系列
os.path.abspath(参数) #获取当前文件的绝对路径 c:/project/X/XXX.txt
os.path.isdir(参数) #获取当前路径文件是否为文件夹-布尔
os.path.isfile(参数) #获取当前路径文件是否为文件-布尔
os.path.basename(参数) #获取当前路径的结尾名字 c:/project/xxx.txt
os.path.split(参数) #以路径文件名切分列表['c:/project/','xxx.txt']
os.path.join(参数) #(‘aa’,'bb','x.txt')aa/bb/x.txt
os.path.getsize(参数) #以字节单位(B)返回当前文件大小换算KB除以1024 换算MB再除以1024
输出压缩文件的绝对路径
import osprint(os.path.abspath('abc.zip'))
输出结果:
判断一个路径是否是目录
import osprint(os.path.isdir('abc.zip'))
输出结果:
import osprint(os.path.isdir('D:\PythonProject\Python_001\pythonProject'))
输出结果:
判断是否为文件
import osprint(os.path.isfile('abc.zip'))
输出结果:
输出文件名
import osprint(os.path.basename('D:\\PythonProject\\Python_001\\pythonProject\\abc.zip'))
输出结果:
切分路径与文件名
import osprint(os.path.split('D:\\PythonProject\\Python_001\\pythonProject\\abc.zip'))
输出结果:
连接文件路径
import osprint(os.path.join('D:\\','PythonProject\\Python_001\\pythonProject','abc.zip'))
输出结果:
os常用的方法(读、改、查系列)
os.getcwd() #获取当前工作绝对路径 c:/project/X/
os.listdir(参数) #获取当前路径下所有文件/文件夹
os.remove(参数) #删除文件(注意不是目录)
os.removedirs(参数) #删除多级目录,目录必须要为空(注意!从底层往上层全部删除)
os.rmdir(参数) #删除一个目录,目录必须要为空
os.mkdir/makedirs(参数) #创建一级或多级目录,这里s是多级
shutil下,常用方法(复制、剪切系列)
shutil.rmtree(文件夹) #删除路径下的所有文件、目录,无论是否有文件(特别注意这个跟os.remove rmdir removedirs的区别)
shutil.copytree(源目录,目标目录) #文件夹全量(包含下属所有层次)复制
shutil.copy(源文件,目标文件) #文件复制
shutil.move(源文件夹,目标文件夹) #文件夹/文件剪切
使用zipfile完成压缩和解压
压缩文件
import os
import zipfile# 建立一个压缩写入对象
z=zipfile.ZipFile('abc.zip','w')
for x in os.listdir('file200'):
#具体向压缩包写入操作z.write('file200'+os.sep+x)
z.close()
程序结果运行如下:
解压文件
import zipfile# 建立一个压缩写入对象
z=zipfile.ZipFile('abc.zip','r')
for file in z.namelist():
#具体向压缩包写入操作z.extract(file,"tmp/")
程序结果运行如下: