【发布时间】:2020-06-29 17:22:06
【问题描述】:
我在尝试管理 csv 时遇到了一些障碍。我的目标是打开一个存储在我的 pythonanwywhere 帐户中的 csv 文件,该文件由两列(ids 和 volume)组成,并将这些列拆分为两个列表以进行下游操作,最终输出两个新的 csv 文件。
我经常遇到拆分导入列表的问题。如果我尝试创建一个新列表,我会收到一个索引错误:列表超出范围。 csv 中只有两列,所以我认为索引应该只是 0 和 1。
我尝试了多种方法来处理这些数据,但总是被绊倒。这是我正在使用的当前代码:
import csv
ids =[]
volume =[]
with open('TestImportCSV.csv', newline='') as f:
reader = csv.reader(f, delimiter = '\t')
#reader = csv.reader(f, delimiter = ',')
for row in reader:
print(row[0])
如果我只打印行的 csv,它看起来像这样:
['SampleID, Volumes']
['PD0014-8258', '319']
['PD0014-8259', '313']
['PD0014-8117', '513']
['PD0014-8613', '373']
['PD0014-8719', '221']
而打印 row[0] 的索引会导致列表索引超出范围错误并输出:
SampleID, Volumes
PD0014-8258
PD0014-8259
PD0014-8117
PD0014-8613
PD0014-8719
我觉得这可能有一个相当简单的解决方案,但肯定有一些我忽略了的东西。
****编辑**** 在下面添加输入文件格式示例。
Excel CSV: "列 1" "列 2"
SampleID Volumes
PD0014-8258 319
PD0017-8259 313
PD0014-8117 513
上传到pythonanywhere:
1 SampleID Volumes
2 PD0014-8258 319
3 PD0014-8259 313
4 PD0014-8117 513
从 pythonanywhere 下载的文件,用记事本打开:
SampleID, Volumes
"PD0014-8258 319",
"PD0014-8259 313",
"PD0014-8117 513",
【问题讨论】:
-
您的文件中可能有一个空行。
-
您确实应该显示文件的第一行和最后一行。并说打印
row[0]是否实际上打印了所有行。
标签: python list csv pythonanywhere csv-import