用python随机读取csv文件5万行并存放在另一个csv文件中
时间: 2023-10-08 19:06:56 浏览: 85
使用python读取csv文件快速插入数据库的实例
以下是使用Python随机读取CSV文件并将其存储在另一个CSV文件中的示例代码:
```python
import random
import csv
# 打开原始CSV文件
with open('original.csv', 'r') as original_file:
original_csv = csv.reader(original_file)
# 读取第一行(标题行)
header = next(original_csv)
# 创建一个空的列表来存储随机行
random_rows = []
# 随机选择5万行
for i, row in enumerate(original_csv):
if i < 50000:
random_rows.append(row)
else:
# 选择到5万行后,以1/i的概率替换掉之前随机选择的行
replace_index = random.randint(0, i)
if replace_index < 50000:
random_rows[replace_index] = row
# 将随机行写入新的CSV文件
with open('random.csv', 'w', newline='') as random_file:
random_csv = csv.writer(random_file)
# 写入标题行
random_csv.writerow(header)
# 写入随机行
for row in random_rows:
random_csv.writerow(row)
```
这个代码使用Python内置的csv模块来读取和写入CSV文件。它首先打开原始CSV文件,然后使用csv.reader对象逐行读取文件。在读取标题行后,它创建一个空的列表random_rows,用于存储随机行。
然后,它使用一个循环来遍历原始CSV文件中的每一行,直到读取了50000行。对于前50000行,它直接将它们添加到random_rows列表中。对于超过50000行的行,它以1/i的概率替换random_rows列表中的一个随机行,其中i是当前行的索引。
最后,它使用csv.writer对象将随机行写入新的CSV文件。它首先写入标题行,然后写入random_rows列表中的每一行。注意,我们需要将newline参数设置为'',以避免在Windows系统中添加额外的空行。
阅读全文