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)