我想用pythom做一个随机删除文件夹里所有csv格式中的数据,以10%为间隔依次删除的程序,并把剩下的数据输出为csv格式
时间: 2023-06-23 20:09:57 浏览: 86
随机删除程序
你可以使用Python的os和random模块来实现这个程序。以下是一个基本的框架,你可以根据你的需求进行修改:
``` python
import os
import random
import csv
# 定义要处理的文件夹路径
folder_path = "/path/to/your/folder"
# 列出文件夹下所有csv文件
csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]
# 随机删除10%的数据
for file in csv_files:
with open(os.path.join(folder_path, file), 'r') as f:
reader = csv.reader(f)
data = list(reader)
num_rows = len(data)
num_rows_to_delete = int(num_rows * 0.1)
rows_to_delete = random.sample(range(num_rows), num_rows_to_delete)
data = [row for i, row in enumerate(data) if i not in rows_to_delete]
with open(os.path.join(folder_path, file), 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(data)
```
这段代码会打开每个csv文件,随机选择10%的行数并删除它们,然后将更新后的数据写回到原始文件中。你可以将这些更新后的csv文件合并成一个文件,或者在循环内部创建一个新的csv文件,并将更新后的数据写入其中。
阅读全文