python-使用csv.dictreader时跳过行

python-使用csv.dictreader时跳过行,python,csv,Python,Csv,这是对这一问题的后续行动- @Kroolik的答案解决了我的问题,但我被另一件事困住了 考虑我的文件如下 junk.... junk.... junk required.... junk... required.... junk... 当我通过csv.dictreader阅读时,如何跳过垃圾行?此外,我只知道第一个和最后一个“必需”以及介于两者之间的“垃圾”。最初的“垃圾”可以是任何内容,也可以是任意行数 我试过下面的方法 version_new = open(file_version_new

这是对这一问题的后续行动-

@Kroolik的答案解决了我的问题,但我被另一件事困住了

考虑我的文件如下

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,因为它会自动将列名作为键,这是我最关心的。