函数,在给定csv文件路径和关键字的情况下,返回关键字的行号和下一个空行的行号

2024-10-03 06:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个函数,在给定csv文件路径和关键字的情况下,该函数可以返回关键字的行号以及关键字后下一个空行的行号。目前,代码的工作方式与我希望它的关键字,但我遇到了问题,检测一个空行。这部分代码的if (row[0] == 0) and (int(reader.line_num) > wordLineNum)条件在它应该测试的情况下从不测试True(这就是为什么我在上面为blankLineNum设置了一个默认值)

def lineFinder (keyword, path): # returns the line number and next blank line within a csv 
                                # file given a keyword
   wordLineNum = 0 #hard coded will remove at some point
   blankLineNum = 8 #will remove once function works as intended
   csvfile = open(path, 'r')
   reader = csv.reader(csvfile)

   for row in reader:
      if str(keyword) in row:
         wordLineNum = int(reader.line_num)

   for row in reader:
      if (row[0] == 0) and (int(reader.line_num) > wordLineNum):
          blankLineNum = int(reader.line_num)

   return wordLineNum , blankLineNum

Tags: andcsv函数inifline情况关键字
1条回答
网友
1楼 · 发布于 2024-10-03 06:28:21

您的代码将在文件中找到最后一个关键字。这可能就是我们想要指出的,每次找到关键字时,您都会覆盖该值

在第一个循环的if下,可以添加一个检查:

for row in reader:
    if str(keyword) in row:
        wordLineNum = int(reader.line_num)
    if wordLineNum > 0 and row[0] == 0):
        blankLineNum = int(reader.line_num)
        # Remove the next comment if you want to return the first blank line
        # return wordLineNum , blankLineNum
        
#return the last blank line
return wordLineNum , blankLineNum

相关问题 更多 >