我想打开一个阅读器对象并进行集成,直到'Transaction Date‘匹配为止,在这种情况下,使用DictReader获取一个dict对象。
starting=0
with open(argv[1], 'r')as file:
transaction = list(csv.reader(file))
#what line is the dictReader on?
counter=0
for line in transaction:
counter+=1
if line[0]=='Transaction Date':
starting=counter-1
a=csv.DictReader(file)
for b in a:
print(b)编辑:解决方案
file=open(argv[1],'r')
#go to that line
for i in range(starting):
file.readline()
#read in as dict
dict=list(csv.DictReader(file))发布于 2021-05-20 02:05:15
您可以使用itertools.dropwhile,类似于
from itertools import dropwhile
def f(line):
return line[0] != 'Transaction Date'
with open(argv[1], 'r') as file:
transaction = dropwhile(f, csv.reader(file))
for b in transaction:
print(b)发布于 2021-05-19 02:41:10
从DictReader开始;在while循环中,检查每一行,直到满足您的条件;然后使用for循环迭代来处理剩下的行。
import io, csv
data = '''col_a,col_b
transaction week,4
transaction second,5
transaction date,6
foo,7
bar,8
the end,9
'''
with io.StringIO(data) as f:
reader = csv.DictReader(f)
row = next(reader)
while row['col_a'] != 'transaction date':
row = next(reader)
for row in reader:
print(row)https://stackoverflow.com/questions/67591989
复制相似问题