写一个python脚本,提取文件路径下以“apcie_testsuites简化版”命名的excel文件中含有关键字符串“each speed”的行,并将行数据写入新excel
时间: 2023-05-23 15:04:17 浏览: 87
python读取excel指定列数据并写入到新的excel方法
5星 · 资源好评率100%
文件中。
```python
import os
import xlrd
import xlwt
# 定义文件夹路径和待查找的关键字符串
folder_path = r"D:\test"
target_str = "each speed"
# 遍历文件夹中的所有文件
for root, dirs, filenames in os.walk(folder_path):
for filename in filenames:
# 判断文件是否为以“apcie_testsuites简化版”命名的excel文件
if "apcie_testsuites简化版" in filename and filename.endswith(".xlsx"):
# 打开excel文件
workbook = xlrd.open_workbook(os.path.join(root, filename))
sheet_names = workbook.sheet_names()
# 遍历所有工作表
for sheet_name in sheet_names:
# 获取工作表对象
worksheet = workbook.sheet_by_name(sheet_name)
# 创建新的excel文件
new_workbook = xlwt.Workbook(encoding="utf-8")
new_sheet = new_workbook.add_sheet("sheet1")
row_num = 0
# 遍历工作表中的所有行
for row_idx in range(0, worksheet.nrows):
# 获取该行数据
row_data = worksheet.row_values(row_idx)
# 判断该行是否包含目标字符串
if target_str in str(row_data):
# 写入新的excel文件
for col_idx, cell_value in enumerate(row_data):
new_sheet.write(row_num, col_idx, cell_value)
row_num += 1
# 保存新excel文件
new_workbook.save(os.path.join(root, "new_{}".format(filename)))
```
在上述代码中,我们首先定义了需要遍历的文件夹路径和待查找的关键字符串。接着,使用`os.walk`函数遍历文件夹中的所有文件,判断是否是以“apcie_testsuites简化版”命名的excel文件。对于每个符合条件的excel文件,我们再遍历其中的所有工作表,对每个工作表进行如下操作:
1. 创建新的excel文件,并将数据写入其中。
2. 遍历工作表中的每一行,判断该行是否包含目标字符串。
3. 如果该行包含目标字符串,则将该行数据写入新excel文件中。
最后,保存新excel文件。
阅读全文