gpt4 book ai didi

python - 在行(字符串)中找到子字符串后打印下一行,直到满足条件

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:35 26 4
gpt4 key购买 nike

我愿意:

  1. 从文件中读取行
  2. 查找包含指定文本的行(## Required reading)
  3. 如果行首包含星号 (*),则在带有特定文本的行之后打印下一行
  4. 如果下一行不再有带星号(*)的行(或不同的行),它必须停止

到目前为止我所做的是读取文件、获取行并查找特定文本,在本例中是## Required reading

with open(file, "r") as input:
for line in input:
if '## Required reading' in line:
print(next(input))

这将打印出下一行,仅此而已。我需要的是打印出所有下一行,如果它们在行的开头包含星号(*)。如果不是,它应该停止打印行。

我在考虑一些 while 条件,但我想不通

这是它在原始文件中的样子:

## Required reading
* [5.5. Dictionaries](https://docs.python.org/3/tutorial/datastructures.html#dictionaries)
* [5.6. Looping Techniques](https://docs.python.org/3/tutorial/datastructures.html#looping-techniques)
* [5.7. More on Conditions](https://docs.python.org/3/tutorial/datastructures.html#more-on-conditions)
* [5.8. Comparing Sequences and Other Types](https://docs.python.org/3/tutorial/datastructures.html#comparing-sequences-and-other-types)
* [5.4. Sets](https://docs.python.org/3/tutorial/datastructures.html#sets)
* [Set Types — set, frozenset](https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset)
* [7.2. Reading and Writing Files](https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files)
* [7.2.1. Methods of File Objects](https://docs.python.org/3/tutorial/inputoutput.html#methods-of-file-objects)
* [8.4. The try statement](https://docs.python.org/3/reference/compound_stmts.html#the-try-statement)
* [8.5. The with statement](https://docs.python.org/3/reference/compound_stmts.html#the-with-statement)
* [Open](https://docs.python.org/3/library/functions.html#open)
* [file object](https://docs.python.org/3/glossary.html#term-file-object)

但该文件还包含其他部分,不仅是## Required reading部分,而且我只想从该部分获取带星号(*)的链接并打印出来。

最佳答案

试试这个:

with open(file, "r") as input:
is_required = False
for line in input:
if is_required and line.startswith("*"):
print(line)
else:
is_required = '## Required reading' in line

最后一行会将 is_required 标志设置为 TrueFalse,具体取决于该行是否包含指定文本。

关于python - 在行(字符串)中找到子字符串后打印下一行,直到满足条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55112813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com