首页 > 编程语言 > 详细

python文件操作

时间:2021-03-08 22:16:20      阅读:37      评论:0      收藏:0      [点我收藏+]

功能:

文件移动,文件拷贝,文件重命名 ,删除文件, 压缩文件

 

import os
import shutil
import zipfile

class MyFileHandle:
    def __init__(self):
        pass

    def movePath(self,src,dst):
        src = os.path.join(os.path.abspath("../%s"%src)) # 获取文件路径
        if os.path.isfile(dst):
            raise TypeError("dst path error")
            return -1
        if not os.path.exists(src):
            raise TypeError("src could not find src path %s" %src)
            return -1
        if os.path.isfile(src):
            fileName = os.path.basename(src) # 文件名字
            shutil.move(src,dst + / + fileName)
        else:
            shutil.move(src,dst) # 文件夹

    def copyPath(self, src, dst):
        if os.path.isfile(dst):  # 文件
            raise TypeError(plPath dst path error)
            return -1
        if not os.path.exists(dst):  # 不存在
            os.mkdir(dst)

        if not os.path.exists(src):  # 不存在资源文件
            raise TypeError(plPath could not find src path(%s) % src)
            return -1

        if os.path.isfile(src):  # 资源文件是一个文件
            fileName = os.path.basename(src)
            shutil.copy(src, dst + / + fileName)
        else:
            shutil.copytree(src, dst)   # 拷贝文件夹

    def renameFile(self, srcName, newName):  # 重命名文件
        if not os.path.isfile(srcName):     # 判断文件是不是存在
            raise TypeError(plPath dst path error)
            return -1
        else:
            newPath = os.path.dirname(srcName) + / + newName  # 获取文件夹路径,
            shutil.move(srcName, newPath)

    def backupFile(self, srcFile, fixName, dstPath): # 备份文件
        if not os.path.isfile(srcFile):
            raise TypeError(plPath srcFile error)
            return -1
        if os.path.isfile(dstPath):  # 判断是不是文件
            raise TypeError(plPath dstPath error)
            return -2
        if not os.path.exists(dstPath):
            os.mkdir(dstPath)

        self.copyPath(srcFile, dstPath)  # 拷贝文件
        newFile = dstPath + / + os.path.basename(srcFile)
        newName = fixName + _ + os.path.basename(srcFile)
        self.renameFile(newFile, newName)  # 重命名

    def deletePath(self, src):
        src = os.path.join(os.path.abspath("../%s" % src))
        if not os.path.exists(src):
            raise TypeError(plPath could not find this file(%s) % src)
            return None
        if os.path.isfile(src):
            os.unlink(src)  # 删除文件
        else:
            shutil.rmtree(src)  # 递归删除目录树。

    def getPathFiles(self, srcPath):
        files = []
        srcPath = os.path.join(os.path.abspath("../%s" % srcPath))
        if os.path.isfile(srcPath):
            if os.path.exists(srcPath):
                return [srcPath]
            else:
                raise TypeError(plPath could not find this file(%s) % srcPath)
                return None
        else:
            if not os.path.exists(srcPath):
                os.mkdir(srcPath)
                raise TypeError(plPath could file in this path (%s) % srcPath)
                return None
            else:
                dir_list = os.listdir(srcPath)
                for file in dir_list:
                    path = os.path.join(srcPath,file)
                    if os.path.isfile(path):
                        print(file)
                        files.append(file)

            return files

    def getPathFilesByKey(self, srcPath, key):
        srcPath = os.path.join(os.path.abspath("../%s" % srcPath))
        files = []
        if os.path.isfile(srcPath):
            if os.path.exists(srcPath):
                return [srcPath]
            else:
                raise TypeError(plPath could not find this file(%s) % srcPath)
                return None
        else:
            if not os.path.exists(srcPath):
                raise TypeError(plPath could file in this path (%s) % srcPath)
                return None
            else:
                dir_list = os.listdir(srcPath)
                for file in dir_list:
                    if key == olderFile:
                        file_List = file.split(.)
                        if len(file_List) == 3:
                            files.append(file)
                    else:
                        path = os.path.join(srcPath, file)
                        if os.path.isfile(path):
                            if file.find(key) >= 0:
                                files.append(file)
                return files

    def zipFile(self, srcPath, dstZipFile):  # 压缩文件  Zip文件压缩方法的常量
        ‘‘‘
        :param srcPath: 文件夹或则文件
        :param dstZipFile:  目标文件
        :return: 
        ‘‘‘
        f = zipfile.ZipFile(dstZipFile, w, zipfile.ZIP_DEFLATED)
        if os.path.isfile(srcPath):  # 如果是文件
            f.write(srcPath)
        else:
            for dirpath, dirnames, filenames in os.walk(srcPath): # 遍历文件夹
                fpath = dirpath.replace(srcPath, ‘‘) #
                fpath = fpath and fpath + os.sep or ‘‘
                for filename in filenames: # 将filename中的字节放入归档文件的名称下弧名
                    f.write(os.path.join(dirpath, filename), fpath + filename)

        f.close()

 

python文件操作

原文:https://www.cnblogs.com/countryboy666/p/14501651.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!