打印 TODO:来自 Python 中文本文件的评论
Printing TODO: comments from a text file in Python
在我的项目中,我想从文本文件中提取待办事项列表。这是我目前的进度。
这是todolist.txt
文本文件
的内容
#TODO:example4
def printName():
name=input("Enter your name: ")
print("Hello " + name)
TODO:example3
def printNumbers():
for i in range (0,10):#TODO:example2
print(i)
printName()
printNumbers()
#TODO: example1
这是我的 Python 代码,用于使用 TODO:
提取行
file=open("todolist.txt","r")
word="TODO:"
for line in file:
if word in line:
print(line)
当我运行这个程序时,结果是:
#TODO:example4
TODO:example3
for i in range (0,10):#TODO:example2
#TODO: example1
Process finished with exit code 0
所以我的问题在这里我想提取和打印 TODO 行 only 但是正如你从上面看到的,对于 #TODO:example2 我的程序也在该特定行上打印了以前的代码。
我想做的基本上就是打印 TODO 注释。
您可以按 'TODO'
拆分行,然后获取最后一项。
word="TODO:"
with open("todolist.txt") as file:
for line in file:
if word in line:
print("#TODO:" + line.split(word)[-1])
您可以使用正则表达式:
import re
with open("todolist.txt") as f:
file_content = f.read()
print(re.findall(r'^\s*#TODO:.+$', file_content, re.MULTILINE))
# ['#TODO:example4', '#TODO: example1']
'^\s*#TODO:.+$'
将匹配满足以下条件的每一行:
- 以任意数量的空格(0 个或更多)开头
- 包含#TODO 后跟任意内容(1 个或多个)
- 不包含任何其他内容
在我的项目中,我想从文本文件中提取待办事项列表。这是我目前的进度。
这是todolist.txt
文本文件
#TODO:example4
def printName():
name=input("Enter your name: ")
print("Hello " + name)
TODO:example3
def printNumbers():
for i in range (0,10):#TODO:example2
print(i)
printName()
printNumbers()
#TODO: example1
这是我的 Python 代码,用于使用 TODO:
提取行file=open("todolist.txt","r")
word="TODO:"
for line in file:
if word in line:
print(line)
当我运行这个程序时,结果是:
#TODO:example4
TODO:example3
for i in range (0,10):#TODO:example2
#TODO: example1
Process finished with exit code 0
所以我的问题在这里我想提取和打印 TODO 行 only 但是正如你从上面看到的,对于 #TODO:example2 我的程序也在该特定行上打印了以前的代码。
我想做的基本上就是打印 TODO 注释。
您可以按 'TODO'
拆分行,然后获取最后一项。
word="TODO:"
with open("todolist.txt") as file:
for line in file:
if word in line:
print("#TODO:" + line.split(word)[-1])
您可以使用正则表达式:
import re
with open("todolist.txt") as f:
file_content = f.read()
print(re.findall(r'^\s*#TODO:.+$', file_content, re.MULTILINE))
# ['#TODO:example4', '#TODO: example1']
'^\s*#TODO:.+$'
将匹配满足以下条件的每一行:
- 以任意数量的空格(0 个或更多)开头
- 包含#TODO 后跟任意内容(1 个或多个)
- 不包含任何其他内容