python-使用csv.dictreader时跳过行
这是对这一问题的后续行动- @Kroolik的答案解决了我的问题,但我被另一件事困住了 考虑我的文件如下python-使用csv.dictreader时跳过行,python,csv,Python,Csv,这是对这一问题的后续行动- @Kroolik的答案解决了我的问题,但我被另一件事困住了 考虑我的文件如下 junk.... junk.... junk required.... junk... required.... junk... 当我通过csv.dictreader阅读时,如何跳过垃圾行?此外,我只知道第一个和最后一个“必需”以及介于两者之间的“垃圾”。最初的“垃圾”可以是任何内容,也可以是任意行数 我试过下面的方法 version_new = open(file_version_new
junk....
junk....
junk
required....
junk...
required....
junk...
当我通过csv.dictreader阅读时,如何跳过垃圾行?此外,我只知道第一个和最后一个“必需”以及介于两者之间的“垃圾”。最初的“垃圾”可以是任何内容,也可以是任意行数
我试过下面的方法
version_new = open(file_version_new, 'r')
flag = 0
for row in version_new:
if "JID" in row:
flag = 1 #starting of the 'required section
if "Total text" in row:
flag = 2 #end of required section
if flag == 1:
list_top_version_new.append(row.split())
if flag == 2:
#do something
reader = csv.DictReader(list_top_version_new)
for line in reader:
print(line)
但这似乎不起作用。任何帮助都将不胜感激。
谢谢您可以在循环中循环,获得下一行,直到结束:
for row in version_new:
if "JID" in row:
# in required section, loop until end:
for row in version_new:
if "Total text" in row:
break
list_top_version_new.append(row)
# Anything outside of the required section is ignored.
请注意,不需要row.split()
csv.DictReader
为您提供了一个dictionary对象,其中的行已拆分为值
list\u top\u version\u new
也是一个字典列表,无需再次通过csv.DictReader()
输入。既然您已经在输入文件的该部分上循环,为什么不直接在该循环中进行工作呢?因此,与其在末尾单独循环list\u top\u version\u new
,不如将list\u top\u version\u new.append(row)
替换为您需要对该行执行的任何操作:
for row in version_new:
if "JID" in row:
# in required section, loop until end:
for row in version_new:
if "Total text" in row:
break
print(row)
谢谢如果你看过我[链接]()的帖子,我使用的是csv.Dictreader,因为它会自动将列名作为键,这是我最关心的。