欢迎访问宙启技术站
智能推送

如何使用win32api在Python中实现文件和目录操作

发布时间:2024-01-07 15:00:32

在Python中,你可以使用win32api模块来实现文件和目录操作。win32api为Windows API的Python封装,它可以让你使用Windows的底层功能。

以下是win32api中一些常见的文件和目录操作的方法及使用示例:

1. 获取文件大小:

import win32api

def get_file_size(file_path):
    # 使用GetFileSize来获取文件大小,返回值为字节数
    return win32api.GetFileSize(file_path)
    
file_path = "C:\\test.txt"
file_size = get_file_size(file_path)
print(f"文件大小: {file_size}字节")

2. 获取文件最后修改时间:

import win32api
import win32con
import win32file
import pywintypes

def get_file_last_modified_time(file_path):
    # 使用GetFileTime来获取文件的创建时间、上次访问时间和最后修改时间
    # 使用FILE_ATTRIBUTE_DIRECTORY判断是否为文件夹
    file_attributes = win32file.GetFileAttributes(file_path)
    if file_attributes == win32con.INVALID_FILE_ATTRIBUTES:
        raise FileNotFoundError

    if file_attributes & win32con.FILE_ATTRIBUTE_DIRECTORY:
        raise IsADirectoryError

    file_info = win32file.GetFileTime(file_path)
    file_last_modified_time = file_info[1]
    return pywintypes.Time(file_last_modified_time).AsDateTime()
    
file_path = "C:\\test.txt"
last_modified_time = get_file_last_modified_time(file_path)
print(f"文件最后修改时间: {last_modified_time.strftime('%Y-%m-%d %H:%M:%S')}")

3. 创建目录:

import win32api

def create_directory(directory_path):
    # 使用CreateDirectory创建目录
    win32api.CreateDirectory(directory_path, None)

directory_path = "C:\\test"
create_directory(directory_path)
print(f"目录{directory_path}已创建")

4. 删除文件:

import win32api

def delete_file(file_path):
    # 使用DeleteFile删除文件
    win32api.DeleteFile(file_path)

file_path = "C:\\test.txt"
delete_file(file_path)
print(f"文件{file_path}已删除")

5. 复制文件:

import win32api

def copy_file(source_file, destination_file):
    # 使用CopyFile复制文件
    win32api.CopyFile(source_file, destination_file)

source_file = "C:\\test.txt"
destination_file = "C:\\test_copy.txt"
copy_file(source_file, destination_file)
print(f"文件{source_file}已复制为{destination_file}")

6. 移动文件:

import win32api

def move_file(source_file, destination_file):
    # 使用MoveFile移动文件
    win32api.MoveFile(source_file, destination_file)

source_file = "C:\\test.txt"
destination_file = "C:\\test_move.txt"
move_file(source_file, destination_file)
print(f"文件{source_file}已移动为{destination_file}")

以上是使用win32api在Python中实现文件和目录操作的一些常见方法和示例。通过这些方法,您可以实现对文件和目录的创建、删除、复制和移动等操作。请根据您的需求选择适当的方法来处理文件和目录。