黑马程序员技术交流社区

标题: 【西安校区】Python 中的文件操作 [打印本页]

作者: 逆风TO    时间: 2019-6-14 10:11
标题: 【西安校区】Python 中的文件操作
在学习 Python 的过程中,不经常使用到文件相关的操作(也有可能是我学的不到家),说实话,这些不常用的 API ,在真正需要的时候还是要百度的,自己还是写不出来。说要整理,也不知道该如何整理,就干脆一点,直接上我做练习的时候写的一个工具类吧。日后再有文件相关的操作,都可以写成方法加上去。


另外,普及一个知识点,这个文件可以直接拿来使用,在使用之前可以使用dir() 和 help() 方法来查看类库和方法的介绍。


使用方法


在同一目录下:
        from FileUtils(文件名) import FileUtils 这样就可以使用了 FileUtils 这个工具类了。

    在不同目录下:
        sys.path.append(r'D:\Python\test')  - 将文件所在目录添加进 import 模块中
        from FileUtils(文件名) import FileUtils 这样就可以使用了 FileUtils 这个工具类了。


以下既是 FileUtils.py 文件的内容。


import os

class FileUtils(object):
    '''
    用于操作文件的工具类
    :version 1.0
    :Python version : 3.6
    :author : YJK923

    '''
    def read(self,file_name,mode):
        '''
        读取文件内容,返回文件内容,类型为字符串,若文件不存在,则返回空
        :prarm file_name : 文件名
                mode : 打开模式,常用方式 r 或 rb
                    r : 以读方式打开,只能读文件
                    rb : 以二进制读方式打开,只能读文件
                    rt : 以文本读方式打开,只能读文件
                    rb+ : 以二进制方式打开,可以读写文件
        '''
        try:
            with open(file_name,mode) as f:
                f.seek(0) # 移动文件指针
                content = f.read()
                return content
        except Exception as e :
            print(e)


    def readline(self,file_name):
        '''
        一行一行的读取文件
        :param : file_name : 文件名
        '''
        try:
            with open(file_name,'r') as f:
                for line in f:
                    print(line)
        except Exception as e:
            print(e)


    def write(self,file_name,content,mode):
        '''
        清空文件并写入 content
        :param file_name : 文件名
               content : 写入内容
               mode : 打开模式,常用方式 w 或 wb
                   w : 以写的方式打开,只能写文件,若文件不存在,先创建,再写
                   wb : 以二进制写方式打开,只能写文件,若文件不存在,先创建再写,反之,清空之后再写
                   wt : 以文本方式打开,只能写文件,若文件不存在,先创建再写,反之,清空之后再写
        '''         
        with open(file_name,mode) as f:
            f.write(str(content))


    def append_write(self,file_name,content):
        '''
        追加文件写入 content
        :param file_name : 文件名
               content : 追加内容
        '''
        with open(file_name,'a+') as f:
            f.write(str(content))


    def clear(self,file_name):
        '''
        清空文件内容
        :param: file_name : 文件名
        '''
        with open(file_name,'wb') as f:
            f.truncate() # 清空文件内容


    def remove(self,file_name):
        '''
        删除文件
        :param : file_name : 文件名
        '''
        try:
            os.remove(file_name)
        except Exception as e:
            print(e)


    def tell(self,file_name):
        '''
        获取文件中指针的值
        :param : file_name : 文件名
        '''
        try:
            with open(file_name,'a+') as f:
                L = f.tell()
                return L
        except Exception as e:
            print(e)


    def copyfile(self,source_name,target_name):
        '''
        复制文件,复制之后的文件在同一级目录中
        :param : source_name : 原文件名
                 target_name : 复制之后的文件名
        '''
        try:
            with open(source_name,'rb') as f1, open(target_name,'wb') as f2:
                f2.write(f1.read())
        except Exception  as e:
            print(e)


    def movefile(self,source_name,path):
        '''
        移动文件到 path 路径下 示例:movefile('users.txt','D:\\FTPTest')
        :param : source_name : 原文件名称
                 path : 移动之后的目录信息
        '''
        try:
            with open(source_name,'rb') as f1, open(path+'\\'+source_name,'wb') as f2:
                f2.write(f1.read())
            os.remove(source_name)
        except Exception as e:
            print(e)







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2