gpt4 book ai didi

python - 如何在Python中访问csv文件的特定单元格

转载 作者:行者123 更新时间:2023-12-01 00:09:06 25 4
gpt4 key购买 nike

我有以下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')

最佳答案

总结我的评论,您可以执行类似的操作,以更直观的方式迭代 CSV 文件中的行:

import csv

csvfile = '/home/lamma/local-blast/scripts/test.csv'

with open(csvfile) as f:
rows = csv.reader(f)

headers = next(rows)

for sample, forward, reverse in rows:
# do something with sample, forward, and reverse
# rinse and repeat

这是使用 pathlibf-strings 更新代码的替代方案(正如我在评论中所说,它需要 Python 3.6+):

import csv
from pathlib import Path

# I'm assuming you are processing args somewhere else
# in your code
path = Path(args.path)
csvfile = Path(args.csv)

with csvfile.open() as f:
rows = csv.reader(f)

headers = next(rows)

# avoid using generic indexed elements of rows
# for clarity in the code
for sample, forward, reverse in rows:
# process forward sample file
seq = path / f'{forward}.seq'
fasta = path / f'{sample}_1.fasta'

if seq.exists():
seq.rename(fasta)

# process reverse sample file
seq = path / f'{reverse}.seq'
fasta = path / f'{sample}_2.fasta'

if seq.exists():
seq.rename(fasta)

希望对您有所帮助。

关于python - 如何在Python中访问csv文件的特定单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59753491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com