如何解决python中枚举函数打印元素的问题
这是我的 Python 应用程序代码的一部分,它位于 for 循环本身中。它从另一个文本文件中找到每个文件的名称。
当我打印 i
时,它每次都会打印正确的行号。问题在于 sen
。当我打印 sen
时,它只打印一个新行 (\n
)。为什么不包含每一行的内容?
line_number=1
for line in open(relevant_docs_path,"r",encoding="utf8"):
if line.rstrip('\n') == file_name:
with open(relevant_docs_path) as fp:
for i,sen in enumerate(fp):
if i == line_number+1:
print(sen)
break
else:
line_number += 1
这是我的文本文件(fp):
1.persian_query
7894.persian_poem 7895.persian_poem 7898.persian_poem 7899.persian_poem 7900.persian_poem
2.persian_query
7901.persian_poem 7902.persian_poem
3.persian_query
7901.persian_poem 7902.persian_poem
4.persian_query
7903.persian_poem
5.persian_query
7904.persian_poem 7905.persian_poem 7906.persian_poem 7907.persian_poem 7908.persian_poem 7909.persian_poem 7910.persian_poem 7911.persian_poem 7912.persian_poem 7913.persian_poem 7914.persian_poem 7915.persian_poem 7916.persian_poem 7917.persian_poem 7918.persian_poem 7919.persian_poem 7920.persian_poem 7921.persian_poem 7922.persian_poem 7923.persian_poem 7924.persian_poem
解决方法
主要问题是 enumerate
从 0 开始计数,而 line_number
初始化为 1。您需要将 line_number
更改为 0 或使用 enumarate(...,start=1)
。>
更新代码:
line_number = 1
for line in open(relevant_docs_path,"r",encoding="utf8"):
if line.rstrip('\n') == file_name:
with open(relevant_docs_path) as fp:
for i,sen in enumerate(fp,start=1):
if i == line_number+1:
print(sen)
break
else:
line_number += 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。