def zipji1e(): f = zipfile.ZipFile(f"E:\qqqqq\qqqqq\qqqqq.rar", 'r') # 压缩文件位置 for file in f.namelist(): f.extract(file, "E:\qqqqq\qqqqq") # 解压位置 f.close() # 指定要查找的文件夹路径 folder_path = "E:\qqqqq\qqqqq" # 指定要选取的字段 selected_columns = ['weqe', 'dasda'] # 使用 os 模块列出文件夹中所有的 XLS 文件 xls_files = [f for f in os.listdir(folder_path) if f.endswith('.xls')] # 创建一个新的 Excel 文件 writer = pd.ExcelWriter(f'E:\qqqqq\qqqqq\dsad.xlsx') # 循环对每个 XLS 文件进行操作 for xls_file in xls_files: # 构造文件路径 file_path = os.path.join(folder_path, xls_file) # 使用 pandas 打开 XLS 文件 df = pd.read_excel(file_path) # 选取指定的字段 valid_columns = [col for col in selected_columns if col in df.columns] if len(valid_columns) < len(selected_columns): print(f"Warning: {xls_file} contains invalid column names, skipping them") # 去除特殊符号和非法字符 for col in valid_columns: df[col] = df[col].apply(lambda x: re.sub(r'[^\w\s]', '', str(x))) df[col] = df[col].apply(lambda x: re.sub(r'[\d]', '', str(x))) selected_data = df[valid_columns] # 将选取的数据写入到新的 Excel 文件中 selected_data.to_excel(writer, sheet_name=xls_file) # 保存并关闭新的 Excel 文件 writer.save() writer.close() zipji1e() 帮我改造代码,是把文档里面所有的xlsx文件重新写入到新的excel文档,而并不是xls
时间: 2024-03-16 10:47:04 浏览: 174
好的,这里是改造后的代码:
```python
import os
import re
import pandas as pd
import zipfile
def unzip_files():
# 指定压缩文件路径
zip_file_path = r"E:\qqqqq\qqqqq\qqqqq.rar"
# 解压路径
extract_path = r"E:\qqqqq\qqqqq"
with zipfile.ZipFile(zip_file_path, 'r') as zip_file:
# 解压所有文件到指定路径
zip_file.extractall(extract_path)
def process_xlsx_files():
# 指定文件夹路径
folder_path = r"E:\qqqqq\qqqqq"
# 指定要选取的字段
selected_columns = ['weqe', 'dasda']
# 使用 os 模块列出文件夹中所有的 xlsx 文件
xlsx_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 创建一个新的 Excel 文件
writer = pd.ExcelWriter(r"E:\qqqqq\qqqqq\dsad.xlsx")
# 循环对每个 xlsx 文件进行操作
for xlsx_file in xlsx_files:
# 构造文件路径
file_path = os.path.join(folder_path, xlsx_file)
# 使用 pandas 打开 xlsx 文件
df = pd.read_excel(file_path)
# 选取指定的字段
valid_columns = [col for col in selected_columns if col in df.columns]
if len(valid_columns) < len(selected_columns):
print(f"Warning: {xlsx_file} contains invalid column names, skipping them")
# 去除特殊符号和非法字符
for col in valid_columns:
df[col] = df[col].apply(lambda x: re.sub(r'[^\w\s]', '', str(x)))
df[col] = df[col].apply(lambda x: re.sub(r'[\d]', '', str(x)))
selected_data = df[valid_columns]
# 将选取的数据写入到新的 Excel 文件中
selected_data.to_excel(writer, sheet_name=os.path.splitext(xlsx_file)[0])
# 保存并关闭新的 Excel 文件
writer.save()
writer.close()
# 解压文件
unzip_files()
# 处理 xlsx 文件并写入到新的 Excel 文件中
process_xlsx_files()
```
这个代码会解压指定的压缩文件,并将文件夹中所有的 xlsx 文件重新写入到新的 Excel 文件中。同时,它会去除选取的字段中的特殊符号和非法字符。如果某个 xlsx 文件中不包含选取的字段,它会跳过这个文件并打印一个警告信息。
阅读全文