python文件操作高阶技巧举例

python文件操作高阶技巧举例

import os

class FileOperator:
    def __init__(self):
        pass

    # 1. 检查文件是否存在
    def file_exists(self, file_path):
        return os.path.exists(file_path)
    
    # 2. 创建文件
    def create_file(self, file_path):
        open(file_path, 'w').close()
    
    # 3. 删除文件
    def delete_file(self, file_path):
        os.remove(file_path)
    
    # 4. 重命名文件
    def rename_file(self, old_file_path, new_file_path):
        os.rename(old_file_path, new_file_path)
    
    # 5. 复制文件
    def copy_file(self, source_file_path, target_file_path):
        import shutil
        shutil.copy2(source_file_path, target_file_path)
    
    # 6. 移动文件
    def move_file(self, source_file_path, target_file_path):
        shutil.move(source_file_path, target_file_path)
    
    # 7. 获取文件大小(字节数)
    def get_file_size(self, file_path):
        return os.path.getsize(file_path)
    
    # 8. 获取文件的访问时间
    def get_file_access_time(self, file_path):
        return os.path.getatime(file_path)
    
    # 9. 获取文件的修改时间
    def get_file_modification_time(self, file_path):
        return os.path.getmtime(file_path)
    
    # 10. 获取文件的创建时间
    def get_file_creation_time(self, file_path):
        return os.path.getctime(file_path)
    
    # 11. 获取文件权限
    def get_file_permissions(self, file_path):
        return os.access(file_path, os.R_OK), os.access(file_path, os.W_OK), os.access(file_path, os.X_OK)
    
    # 12. 获取文件的绝对路径
    def get_file_absolute_path(self, file_path):
        return os.path.abspath(file_path)
    
    # 13. 获取文件所在目录路径
    def get_file_directory(self, file_path):
        return os.path.dirname(file_path)
    
    # 14. 获取文件的扩展名
    def get_file_extension(self, file_path):
        return os.path.splitext(file_path)[1]
    
    # 15. 检查路径是否为文件
    def is_file(self, path):
        return os.path.isfile(path)
    
    # 16. 检查路径是否为目录
    def is_directory(self, path):
        return os.path.isdir(path)
    
    # 17. 获取目录下所有文件和子目录的列表
    def get_directory_contents(self, directory_path):
        return os.listdir(directory_path)
    
    # 18. 创建目录
    def create_directory(self, directory_path):
        os.makedirs(directory_path)
    
    # 19. 删除目录
    def delete_directory(self, directory_path):
        os.rmdir(directory_path)
    
    # 20. 递归删除目录及其内容
    def delete_directory_recursive(self, directory_path):
        shutil.rmtree(directory_path)
    
    # 21. 判断路径是否存在
    def path_exists(self, path):
        return os.path.exists(path)
    
    # 22. 判断路径是否为空
    def path_is_empty(self, path):
        return len(os.listdir(path)) == 0
    
    # 23. 拼接路径
    def join_paths(self, *paths):
        return os.path.join(*paths)
    
    # 24. 获取当前工作目录
    def get_current_directory(self):
        return os.getcwd()
    
    # 25. 改变当前工作目录
    def change_current_directory(self, directory_path):
        os.chdir(directory_path)
    
    # 26. 获取文件或目录的所有者ID
    def get_owner_id(self, path):
        return os.stat(path).st_uid
    
    # 27. 获取文件或目录的所有者名称
    def get_owner_name(self, path):
        import pwd
        return pwd.getpwuid(os.stat(path).st_uid).pw_name
    
    # 28. 修改文件或目录的所有者
    def change_owner(self, path, owner_id):
        os.chown(path, owner_id, -1)
    
    # 29. 获取文件或目录的组ID
    def get_group_id(self, path):
        return os.stat(path).st_gid
    
    # 30. 获取文件或目录的组名称
    def get_group_name(self, path):
        import grp
        return grp.getgrgid(os.stat(path).st_gid).gr_name
    
    # 31. 修改文件或目录的组
    def change_group(self, path, group_id):
        os.chown(path, -1, group_id)
    
    # 32. 设置文件或目录的权限
    def set_permissions(self, path, permissions):
        os.chmod(path, permissions)
    
    # 33. 读取文件内容
    def read_file(self, file_path):
        with open(file_path, 'r') as file:
            return file.read()
    
    # 34. 逐行读取文件内容
    def read_file_lines(self, file_path):
        with open(file_path, 'r') as file:
            return file.readlines()
    
    # 35. 写入内容到文件
    def write_to_file(self, file_path, content):
        with open(file_path, 'w') as file:
            file.write(content)
    
    # 36. 追加内容到文件
    def append_to_file(self, file_path, content):
        with open(file_path, 'a') as file:
            file.write(content)
    
    # 37. 复制文件夹
    def copy_directory(self, source_directory, target_directory):
        import distutils.dir_util
        distutils.dir_util.copy_tree(source_directory, target_directory)
    
    # 38. 移动文件夹
    def move_directory(self, source_directory, target_directory):
        shutil.move(source_directory, target_directory)
    
    # 39. 获取文件夹大小(字节数)
    def get_directory_size(self, directory_path):
        total_size = 0
        for dirpath, dirnames, filenames in os.walk(directory_path):
            for f in filenames:
                fp = os.path.join(dirpath, f)
                total_size += os.path.getsize(fp)
        return total_size
    
    # 40. 获取文件夹的访问时间
    def get_directory_access_time(self, directory_path):
        return os.path.getatime(directory_path)
    
    # 41. 获取文件夹的修改时间
    def get_directory_modification_time(self, directory_path):
        return os.path.getmtime(directory_path)
    
    # 42. 获取文件夹的创建时间
    def get_directory_creation_time(self, directory_path):
        return os.path.getctime(directory_path)
    
    # 43. 获取文件夹的所有者ID
    def get_directory_owner_id(self, directory_path):
        return os.stat(directory_path).st_uid
    
    # 44. 获取文件夹的所有者名称
    def get_directory_owner_name(self, directory_path):
        return pwd.getpwuid(os.stat(directory_path).st_uid).pw_name
    
    # 45. 获取文件夹的组ID
    def get_directory_group_id(self, directory_path):
        return os.stat(directory_path).st_gid
    
    # 46. 获取文件夹的组名称
    def get_directory_group_name(self, directory_path):
        return grp.getgrgid(os.stat(directory_path).st_gid).gr_name
    
    # 47. 设置文件夹的权限
    def set_directory_permissions(self, directory_path, permissions):
        os.chmod(directory_path, permissions)
    
    # 48. 递归修改文件夹及其子文件夹的权限
    def set_directory_permissions_recursive(self, directory_path, permissions):
        for root, dirs, files in os.walk(directory_path):
            os.chmod(root, permissions)
            for file in files:
                os.chmod(os.path.join(root, file), permissions)
    
    # 49. 获取文件或文件夹的绝对路径
    def get_absolute_path(self, path):
        return os.path.abspath(path)
    
    # 50. 检查路径是否为绝对路径
    def is_absolute_path(self, path):
        return os.path.isabs(path)
    
    # 51. 检查路径是否为相对路径
    def is_relative_path(self, path):
        return not os.path.isabs(path)
    
    # 52. 检查路径是否为符号链接
    def is_symlink(self, path):
        return os.path.islink(path)
    
    # 53. 创建符号链接
    def create_symlink(self, source_path, target_path):
        os.symlink(source_path, target_path)
    

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

《代码爱好者》

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值