Python 筛选批量CSV文件中固定行数的数据不满足SPEC的CSV文件,并存到另外一个文件夹中
时间: 2024-12-24 10:41:01 浏览: 1
在Python中,你可以使用pandas库来处理CSV文件并实现这样的功能。下面是一个简单的步骤描述:
1. 首先,你需要导入必要的库:
```python
import pandas as pd
from os import listdir
from os.path import join
```
2. 定义一个函数,该函数接收源文件夹路径、目标文件夹路径以及指定的行数和SPEC条件:
```python
def filter_csv_files(src_dir, dest_dir, row_count, spec_condition):
# 检查输入路径是否存在
if not (src_dir.exists() and src_dir.is_dir()):
print("Source directory not found.")
return
# 创建目标目录如果不存在
if not dest_dir.exists():
dest_dir.mkdir(parents=True)
# 获取源目录下的所有CSV文件
csv_files = [join(src_dir, f) for f in listdir(src_dir) if f.endswith('.csv')]
# 对每个文件进行处理
for file_name in csv_files:
df = pd.read_csv(file_name)
# 检查行数
if len(df) != row_count:
continue
# 根据SPEC条件筛选数据
filtered_df = df[~df['column_name'].str.contains(spec_condition)] # 请替换 'column_name' 和 'spec_condition' 为你实际的列名和条件
# 如果筛选后的数据不为空,则保存到新的文件
if not filtered_df.empty:
output_file = join(dest_dir, file_name.split('/')[-1])
filtered_df.to_csv(output_file, index=False)
```
3. 调用这个函数,传入源文件夹路径、目标文件夹路径,比如指定每行50行且不符合特定字符串"SPEC"的文件:
```python
filter_csv_files('/path/to/source/directory', '/path/to/destination/directory', 50, "SPEC")
```
阅读全文