python批量将xlxs文gbk转换为utf8文件
时间: 2023-06-05 12:47:29 浏览: 141
要批量将xlxs文件从gbk转换为utf8,可以使用Python的第三方库openpyxl。首先需要安装openpyxl库。可以使用pip命令安装:pip install openpyxl。安装完成后可以开始编写Python脚本。
首先需要通过os模块获取指定目录下所有的xlsx文件名,代码如下:
```python
import os
path = "your_folder_path" # 设置目录路径
files = os.listdir(path) # 获取目录下所有文件名
xlsx_files = [file for file in files if file.endswith(".xlsx")] # 找出xlsx文件
```
上述代码将找出所在目录下以.xlsx为结尾的所有文件名,并放入列表xlsx_files中。
接下来需要遍历所有xlsx文件,逐一进行转换。在循环中,使用openpyxl库中的load_workbook方法打开xlsx文件,将工作表的编码格式从gbk转换为utf8,并保存成新文件。代码如下:
```python
import openpyxl
for file in xlsx_files:
workbook = openpyxl.load_workbook(os.path.join(path, file)) # 打开文件
for sheet in workbook.sheetnames:
worksheet = workbook[sheet]
for row in range(1, worksheet.max_row + 1):
for column in range(1, worksheet.max_column + 1):
cell = worksheet.cell(row, column)
if cell.value is not None and isinstance(cell.value, str):
cell.value = cell.value.encode("gbk").decode("utf-8") # 编码转换
new_file = file[:-5] + "_utf8.xlsx" # 新文件名
workbook.save(os.path.join(path, new_file)) # 保存新文件
```
上述代码中,首先使用load_workbook方法打开xlsx文件,然后遍历所有工作表,再逐一遍历单元格,将文本类型的单元格内容从gbk编码转换为utf8编码,并保存为新文件。
执行上述代码后,将目录下所有xlsx文件的编码格式都转换为utf8格式,并保存为新文件,新文件名为原文件名加上"_utf8"后缀。
阅读全文