2024-04-27 03:17:25 发布
网友
我必须解析一个csv文件,文件中的第一个有用信息位于第三行和第二列。在
以下是我迄今为止所做工作的一个片段:
f = open(filename, r) reader = csv.reader(f, delimeter=';') i=0 for row in reader: if (i == 2): useful_data = row[2] break else: i += 1
但我不喜欢这种方法。有谁能提出更好的方法吗?在
你到底不喜欢什么?我认为更好的版本应该是:
with open(filename, 'r') as f: reader = csv.reader(f, delimiter=';') for i, row in enumerate(reader): if i == 2: useful_data = row[2] break
不要使用for循环,然后再使用break,对文件使用next进行手动迭代
for
break
next
只需在csv阅读器上使用next跳过任意多行,然后最后使用next并选择所需的列:
with open(filename) as f: reader = csv.reader(f, delimiter=';') # skip 2 rows for _ in range(2): next(reader) useful_data = next(reader)[2]
itertools.islice可以简化这里的内容:
itertools.islice
with open(filename) as f: reader = csv.reader(f, delimiter=';') useful_data = next(islice(reader, 2, None))[2]
你到底不喜欢什么?我认为更好的版本应该是:
不要使用
for
循环,然后再使用break
,对文件使用next
进行手动迭代只需在csv阅读器上使用
next
跳过任意多行,然后最后使用next
并选择所需的列:itertools.islice
可以简化这里的内容:相关问题 更多 >
编程相关推荐