请帮我写一个若干Excel文件里筛选出含有某个名字的Excel文件并把它们放到一个文件夹里
时间: 2024-05-10 17:21:07 浏览: 74
以下是Python代码实现:
```
import os
import shutil
import glob
# 要查找的名字
name_to_find = '张三'
# 查找当前目录下所有的Excel文件
excel_files = glob.glob('*.xlsx')
# 创建存储筛选结果的文件夹
if not os.path.exists('筛选结果'):
os.mkdir('筛选结果')
# 遍历所有Excel文件,筛选出含有指定名字的文件,并将其复制到筛选结果文件夹中
for file in excel_files:
with open(file, 'r') as f:
contents = f.read()
if name_to_find in contents:
shutil.copy(file, os.path.join('筛选结果', file))
print(f'{file} 已复制到筛选结果文件夹中')
```
运行以上代码,就能在当前目录下找到一个名为“筛选结果”的文件夹,其中包含了所有含有指定名字的Excel文件。
相关问题
某一文件夹中包含若干个子文件夹,每个子文件夹中又包含若干个excel文件,在matlab中应该怎样循环读取这些excel文件
在MATLAB中,如果你想要遍历嵌套的子文件夹并读取其中的所有Excel文件,可以使用递归的方式来完成。首先,创建一个函数来处理单个文件夹,然后用`recursiveFolderTraversal`函数去遍历整个树形结构。以下是一个示例:
1. 创建一个辅助函数`isExcelFile`,用于检查文件是否为Excel文件:
```matlab
function isExcelFile(filename)
return endsWith(filename, {''.xls', '''.xlsx''});
end
```
2. 主函数`recursiveFolderTraversal`:
```matlab
function readAllFilesInDirectory(directory)
files = dir(fullfile(directory, '*.*'));
for file = files
if isdir(file.name) % 子文件夹
readAllFilesInDirectory(fullfile(directory, file.name));
elseif isExcelFile(file.name) % Excel文件
filePath = fullfile(directory, file.name);
data = readtable(filePath);
% 处理或保存数据
end
end
end
```
3. 调用主函数并传入根目录:
```matlab
rootDir = 'your_root_directory'; % 替换为你实际的文件夹路径
recursiveFolderTraversal(rootDir);
```
这个函数会递归地访问每个子文件夹,并对Excel文件进行读取。对于每个找到的Excel文件,它会调用`readtable`函数来读取内容。
阅读全文