python实现批量转换文件编码(批转换编码示例)


下面是一个Python脚本的示例,用于批量转换指定目录下所有文件的编码。这个例子假设我们想要将文件从GBK编码转换为UTF-8编码。请确保在运行此脚本之前,你已经安装了Python环境。


import os

def convert_file_encoding(file_path, src_encoding='gbk', dst_encoding='utf-8'):
    """
    转换文件的编码

    :param file_path: 文件路径
    :param src_encoding: 源编码,默认为'gbk'
    :param dst_encoding: 目标编码,默认为'utf-8'
    """
    with open(file_path, 'r', encoding=src_encoding) as file:
        content = file.read()
    
    with open(file_path, 'w', encoding=dst_encoding) as file:
        file.write(content)

def batch_convert_encoding(directory, src_encoding='gbk', dst_encoding='utf-8'):
    """
    批量转换指定目录下所有文件的编码

    :param directory: 目录路径
    :param src_encoding: 源编码,默认为'gbk'
    :param dst_encoding: 目标编码,默认为'utf-8'
    """
    for root, dirs, files in os.walk(directory):
        for file in files:
            file_path = os.path.join(root, file)
            try:
                convert_file_encoding(file_path, src_encoding, dst_encoding)
                print(f"Converted: {file_path}")
            except Exception as e:
                print(f"Failed to convert {file_path}: {e}")

if __name__ == "__main__":
    # 设置需要转换编码的目录路径
    directory_to_convert = 'path/to/your/directory'
    batch_convert_encoding(directory_to_convert)

请将此脚本中的`directory_to_convert`变量的值更改为你要转换编码的目录路径。这个脚本会遍历指定目录下的所有文件,并尝试将它们从GBK编码转换为UTF-8编码。如果遇到无法转换的文件(例如,非文本文件或已经是UTF-8编码的文件),它会捕获异常并打印错误信息。

注意:在运行此脚本之前,请确保备份你的文件,以防万一发生数据丢失或损坏的情况。