美文网首页
Python面向对象进行封装处理文件属性

Python面向对象进行封装处理文件属性

作者: 爱学习的蹭蹭 | 来源:发表于2022-11-18 11:15 被阅读0次

Python面向对象进行封装处理文件属性

# -*- coding:utf-8 -*-
import os
import filetype

"""
定义一个File文件类
"""
class File:
    
    # 定义一个构造方法
    def __init__(self ,file_name,file_size,file_type):
        self.file_name = file_name
        self.file_size = file_size
        self.file_type = file_type
        
        
#获取指定文件的大小
def get_file_size(path):
    return os.stat(path).st_size

#获取指定文件路径的根目录
def get_file_root(path):
    #获取文件名
    #return os.path.split(path)[1] 
    # 获取文件路径
    return os.path.split(path)[0]

#指定文件路径获取文件最后文件的路径包含文件
#如:D:\test\file.txt 返回的结果为:file.txt
def get_file_name(path):
    return os.path.basename(path)
    
"""
需要安装 pip install filetype 
不会以上安装建议使用 
filetype不支持txt的后缀的读取
参考 https://blog.csdn.net/weixin_39959192/article/details/110170853
"""
def get_file_type_by_guess(path):
    kind = filetype.guess(path)
    if kind is None:
       print('Cannot guess file type!')
       return
    print('File extension: %s' %kind.extension)
    print('File MIME type: %s' %kind.mime)
    return kind.mime
    

"""
通过splitext函数进行获取文件的类型
"""
def get_file_type(path):
    file_type = os.path.splitext(path)
    #print('File type: %s'%file_type[1])
    return file_type[1]

path = r'D:\test\booklist.txt'

# 定一个类似java的List数组进行存储对象
file_list=[]

#模拟有100个文件
for i in (range(1, 101)):
    #处理文件属性组装File对象
    file_name = get_file_name(path)
    file_size = get_file_size(path)
    file_type = get_file_type(path)
    
    #此步骤类似java的file_list.add(单个对象)
    # 为了输出字这里file_name拼接一下i的变量,
    #python并不能像java一样,在做拼接的时候自动把类型转换为string类型,需要再int型前调用str()转换为str的方法
    file_list.append(File(file_name+(str(i)),str(file_size),file_type))
   

#再次进行对file_list进行输出

for fi in file_list:
    print("file_name-->"+fi.file_name +"\tfile_size-->"+fi.file_size +"\tfile_type-->"+fi.file_type)

输出结果

  • image.png

总结

Python处理这方面没Java方便。各有各的优点,请各位指点,本人非Python出身
只不过想学习这方面知识点找了很久没比较好的文章,然后记录一下。

相关文章

  • Python面向对象进行封装处理文件属性

    Python面向对象进行封装处理文件属性 输出结果 image.png 总结

  • 营销比赛二三事

    Python面向对象编程三大特性调研 Python面向对象之封装 在Python中,没有类似 private 之类...

  • python面向对象特性之封装

    面向对象——封装 一、概述 Python面向对象的三大特性:封装、继承和多态。 封装:在类中对数据的赋值、内部调用...

  • Python面向对象封装

    面向对象——封装 一、概述 Python面向对象的三大特性:封装、继承和多态。 封装:在类中对数据的赋值、内部调用...

  • Python GUI与面向对象

    Python GUI与面向对象 Python面向对象 对象是数据与其能实施的操作的封装结构 类是对于实例对象的抽象...

  • Java面试之基础篇

    面向对象的特性 面向对象的三大特性是:封装、继承、多态。 封装 封装就是将一个对象的属性和方法进行封装。同时私有化...

  • iOS 去 Model 化

    面向对象思想的朴素理解 面向过程,针对功能的实现做了封装,也就是函数 面向对象,再次对函数进行了封装。 对象,函数...

  • Python-学习之路-08 OOP -01

    OOP 面向对象 面向对象的特性封装封装就是对对象的成员进行访问限制封装的三个级别公开:public受保护的: p...

  • 2019-03-07 Java 面向对象

    面向对象和面向过程的思想 面向对象强调的是对象实例。 面向过程强调的是动作。 对象将动作进行封装。 面向对象的特点...

  • 1.1 封装

    本小节知识: 面向对象三大特性 什么是封装 为什么要进行封装? 封装的好处和原则 1.面向对象三大特性 封装性 继...

网友评论

      本文标题:Python面向对象进行封装处理文件属性

      本文链接:https://www.haomeiwen.com/subject/hcwmxdtx.html