python - 从 2 个 CSV 文件中写入每个组合
问题描述
我有 2 个 csv 文件,其中包含有关 PCR 引物的数据。第一个文件包含有关正向引物的数据,第二个文件是反向引物的数据。每个文件有 10 行和大约 20 列,当组合来自文件 1 和文件 2 的行时,我想在每个组合中取每一行并制作第三个 .csv。所以文件应该是 100 行和 40 列。所以文件应该看起来像这样的第 1 行:forward1,reverse1。第 2 行:正向 1,反向 2。第 3 行:正向 1,反向 3。.... 第 41 行:forward5,reverse1。一路向前10,反向10
这是我的代码:
with open(forwards) as f_csv:
read_forward = csv.reader(f_csv)
with open(reverses) as r_csv:
read_reverse = csv.reader(r_csv)
file_name = "Combinations Matrix.csv"
f = open(file_name, 'w')
for fwd in read_forward:
for rev in read_reverse:
for f_value in fwd:
f.write(f_value + ',')
for r_value in rev:
f.write(r_value + ',')
f.write('\n')
f.close()
print('done')
它第一次通过外循环完美地工作。也就是说,第一次通过“read_forward”循环。但我不明白为什么当它开始“read_forward”的第二个循环时,它不会像第一次那样写入组合。使用控制台的打印语句,我发现它仍在循环第一个文件的行,但似乎它没有再次执行内部 for 循环。有人可以帮我解决这个问题吗?
谢谢!
解决方案
内部 CSV 阅读器在第一次外部迭代后耗尽。设置read_reverse
为:
read_reverse = list(csv.reader(r_csv))
推荐阅读
- django - 我的 django 应用程序中的模型是否正确定义?
- chart.js - 如何获取chart.js中指定x的任何y值?
- javascript - 中止 API 获取后重新启动异步函数
- bash - 在波浪号之前展开变量
- javascript - 如何在 Spark AR(用于 Facebook)中创建和使用按钮?
- kubernetes - Kubernetes:为 cpumanager 指定 CPU
- azure - 使用 Azure MSI 访问 Azure 表存储
- python - collatz 序列名称未定义
- php - 向数据库添加新条目的最佳方式
- c# - 如何强制我的 gRPC 客户端打开到服务器的多个连接?