[英]Problem with printing elements of enumerate function in 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.