python - 函数,给定一个 csv 文件路径和一个关键字,返回关键字的行号和下一个空行的行号
问题描述
我正在尝试创建一个函数,给定一个 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
解决方案
您的代码将找到文件中的最后一个关键字。这可能是预期的,只是想指出,每次找到关键字时您都会覆盖该值。
在第一个循环的 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
推荐阅读
- c# - 从 HttpClient continuation 调度时出现明显的内存泄漏
- c# - 负数的正方体
- css - 我可以使用 translate3D (css) 或在单个图像或元素上创建另一个 css 动画来创建蝴蝶动画效果吗?
- r - 基于某些字符串的排序列
- python - 如何定义变量以仅使用部分单元格值?
- android-studio - android studios/gradle 同步启动时多个重复的 Openjdk 二进制文件失败,96% RAM
- django - django-allauth Google 登录无法在 iOS 上运行
- python - 如何更改标签的文本 - Tkinter
- python-3.x - 如何在 Python3 中将日志记录与多处理一起使用
- windows - 损坏的包管理器?找不到模块提供程序 (PowerShellGet)