gpt4 book ai didi

python - 分离一个csv进行处理

转载 作者:行者123 更新时间:2023-11-30 23:39:01 25 4
gpt4 key购买 nike

我是 Python 新手,并且很喜欢它。不过,我有一个问题,希望有人能帮忙。

我有一串用逗号分隔的值,并希望使用循环依次单独处理每个值。

例如

字符串 = '1,2,3,4,5,6,'

我想获取第一个值“1”并在继续处理下一个值之前对其进行处理。

最佳答案

在上面的例子中,您可以使用 split 方法以逗号分割字符串,然后迭代结果列表:

In [1]: s = '1,2,3,4,5,6,'

In [2]: s.split(',')
Out[2]: ['1', '2', '3', '4', '5', '6', '']

In [3]: for i in s.split(','):
...: if i:
...: print i
...:
...:
1
2
3
4
5
6

split 返回一个列表,因此我们在这里所做的是迭代结果列表,然后检查该字段是否为空;它不处理。我们进行此检查是因为您的字符串以 , 结尾,如您所见,它返回一个空字符串。另请注意,这会按所有逗号进行拆分 - 不仅仅是那些分隔值的逗号。

对于上面的情况,这应该没问题,但如果您想要对 CSV 信息进行更高级的处理,csv 模块提供了许多选项来执行此操作。例如:

In [1]: import csv

In [2]: s = '1,2,3,"four, five",6'

In [3]: for item in csv.reader([s]):
...: print item
...:
...:
['1', '2', '3', 'four, five', '6']

这里我们使用csv模块读取字符串,返回的item代表的是逗号分隔的字符串,但是带有特殊的“四、五” “ 值仍被视为一个值。但请注意,在单个字符串的情况下,这将返回由逗号分隔的字符串元素组成的单个列表。正如 @JonClements 指出的,迭代元素本身的一种简洁方法是在 csv.reader([s]) 上调用 next,这将返回列表本身:

In [1]: import csv

In [2]: s = '1,2,3,"four, five",6'

In [3]: for item in next(csv.reader([s])):
...: print item
...:
...:
1
2
3
four, five
6

关于python - 分离一个csv进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904320/

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