首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中打印enumerate函数的元素时出现问题

在python中打印enumerate函数的元素时出现问题
EN

Stack Overflow用户
提问于 2020-12-25 21:26:23
回答 1查看 59关注 0票数 1

这是我的python应用程序代码的一部分,位于for循环本身中。它从另一个文本文件中查找每个文件的名称。

当我打印i时,它每次都打印正确的行号。问题出在sen上。当我打印sen时,它只打印一个新行(\n)。为什么它不包含每一行的内容?

代码语言:javascript
复制
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):

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-12-25 21:35:38

主要问题是enumerate从0开始计数,而line_number从1开始计数。您需要将line_number更改为0或使用enumarate(..., start=1)

更新代码:

代码语言:javascript
复制
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 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65448483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档