Python 如何打印文件的特定部分?
输入文件:Python 如何打印文件的特定部分?,python,file,Python,File,输入文件: %----------------------------------------- Task: - [ ] Learn chapter-1 - [ ] Learn chapter-1 %----------------------------------------- Finished Task: - [x] Learn chapter-1 %----------------------------------------- Upcoming Task: - [*] Learn
%-----------------------------------------
Task:
- [ ] Learn chapter-1
- [ ] Learn chapter-1
%-----------------------------------------
Finished Task:
- [x] Learn chapter-1
%-----------------------------------------
Upcoming Task:
- [*] Learn chapter-1
预期输出文件:
%-----------------------------------------
Task:
- [ ] Learn chapter-1
- [ ] Learn chapter-1
%-----------------------------------------
代码示例
data_file = open("test.txt")
block = ""
found = False
for line in data_file:
if found:
block += line
if line.strip() == "Finished Task:": break
else:
if line.strip() == "Task":
found = True
block = "Task"
data_file.close()
问题是我只想打印任务之间的文本,包括带%------------------------的行。任何建议都将不胜感激。谢谢您的代码只需很少的修改:
data_file = open("task.txt")
block = ""
found = False
for line in data_file:
if found:
if line.strip() == "Finished Task:":
break
else: # <--
block += line # <--
else:
if line.strip() == "Task:": # <--
found = True
block = line
data_file.close()
这是你想要的吗?然而,在我看来,在这种情况下,最好的解决方案是正则表达式现在这是一种非常不实用的自动处理数据格式。您可以更改它,还是来自您的应用程序之外?是的,我可以更改它。实际上,文件结构是根据应用程序的需要设计的。谢谢。那么你应该坚持使用简单的CSV格式,这样更容易处理。之后,当您需要输出待办事项列表时,您可以设计所有这些花哨的线条和括号。在CSV文件中,每个任务有一行,第一列是一个字母-任务的状态(U/F/?)。第二列是任务描述。怎么样?
Task:
- [ ] Learn chapter-1
- [ ] Learn chapter-1
%-----------------------------------------