我有以下CSV
文件:
Sample,Forward,Reverse
Micro1,EF30159600_EF30159600,EF30159601_EF30159601
Micro2,EF30159603_EF30159603,EF30159604_EF30159604
PseudaA,EF30159607_EF30159607,EF30159608_EF30159608
下面是一段代码:
#!/miniconda/bin/python
import csv
with open("/home/lamma/local-blast/scripts/test.csv", 'r') as file:
samples = csv.reader(file)
for row in samples:
print(row[1])
我希望能够开始打印一行,例如:
Micro2,EF30159603_EF30159603,EF30159604_EF30159604
而不是:
Sample
Micro1
Micro2
PseudaA
这是目前正在发生的事情
但是我还希望能够迭代CSV
文件并提取每一列,例如EF30159603_EF30159603
。我希望这样做,因为我需要使用第2列和第3列中的值(即文件名),然后使用第1列中的值重命名这些文件
任何帮助都将不胜感激:)
编辑:
在@accdias的帮助下添加最后的代码
with open(args.csv, 'r') as file:
samples = csv.reader(file)
for row in list(samples)[1:]:
os.rename(args.path + '/' + row[1] + '.seq', args.path + '/' + row[0] + '_1.fasta')
os.rename(args.path + '/' + row[2] + '.seq', args.path + '/' + row[0] + '_2.fasta')
试试DictReader:
读卡器将每一行转换成有序的dict,这样您就可以用它们的名称访问vlaues
如果要经常使用数据文件,我建议使用
pandas
库。使用pandas
,您可以执行以下操作:一般来说,它使处理表格数据变得非常容易
查看iloc和loc的文档
您也可以轻松地选择列作为列表:
总结我的评论,您可以这样做,以更直观的方式迭代
CSV
文件中的行:下面是使用
pathlib
和f-strings
(正如我在评论中所说,它需要Python 3.6+)更新代码的替代方案:我希望有帮助
相关问题 更多 >
编程相关推荐